0% found this document useful (0 votes)
547 views78 pages

RB-1 User Guide Manual (V.1.1)

The document provides a user guide for the RB-1 robot. It includes sections on introduction and safety warnings, quickstart instructions, descriptions of robot components, software architecture, configuration, basic and advanced functionality, technical specifications, maintenance, and recycling. The introduction describes the robot and intended applications. The safety section outlines warnings, risk situations to avoid, and general safety instructions.

Uploaded by

Adrian
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
547 views78 pages

RB-1 User Guide Manual (V.1.1)

The document provides a user guide for the RB-1 robot. It includes sections on introduction and safety warnings, quickstart instructions, descriptions of robot components, software architecture, configuration, basic and advanced functionality, technical specifications, maintenance, and recycling. The introduction describes the robot and intended applications. The safety section outlines warnings, risk situations to avoid, and general safety instructions.

Uploaded by

Adrian
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 78

RB-1 

User guide manual 


 
 

 
 
 

 
User Guide Manual - V.1.1 
RB-1 
 

 
Contents 
 
 
Contents 1 
1. Introduction 4 
1.1. Overall robot description 4 
1.2. Intended use and safety warnings 4 
1.2.1. Safety concept 5 
1.2.2. Specific risk situations 5 
1.2.3. General safety instructions 6 
1.3. Applied standards 8 

2. Quickstart 9 
2.1. Unpacking the robot 9 
2.2. Start-up sequence 9 
2.2.1. Booting the robotic arm 10 
2.3. Pad Teleoperation 10 
2.4. Power-off sequence 11 

3. Robot components 11 


3.1. RB-1 Base components 12 
3.1.1. Base covers 13 
3.1.2. Motor-wheels and omniwheels 14 
3.1.3. Control box 16 
3.1.4. Rear panel 18 
3.1.5. 2D Laser sensor 18 
3.1.6. 3D Camera 19 
3.1.7. Battery 19 
3.2. RB-1 Torso components 21 
3.2.1. Torso and Head 21 
3.2.2. Torso covers 22 
3.2.3. Torso electronics 24 
3.3. Arm 24 


User Guide Manual - V.1.1 
RB-1 
 
3.4. Accessories 25 
3.3.1. Dualshock gamepad 25 
3.3.2. Manual charger 26 
3.3.3. Docking station charger 26 

4. Software architecture 27 


4.1. ROS architecture 27 
4.2. Robot packages 29 
4.2.1. rb1_common 29 
4.2.1. rb1_base_common 29 
4.2.2. rb1_robot 30 
4.2.3. rb1_base_robot 30 
4.2.4. Other packages 30 

5. Configuration 32 
5.1. Users & passwords 32 
5.2. Network 33 
5.3. Devices 34 
5.4. Basic robot params 34 
5.5. ROS server 35 
5.5.1. Connecting with a remote PC 35 
5.6. Bringup 37 
5.7. Controller 38 
5.7.1. robotnik_base_hw 38 
5.8. Mapping 39 
5.9. Localization 40 
5.10. Navigation 41 
5.10.1. Move_base 41 
5.10.1.1. EBand 43 
5.10.1.2. TEB 45 
5.10.2. Move 46 
5.10.3. Docker 49 
5.11. Torso and Head 53 
5.11.1 Torso and head joints 53 
5.12. Arm 54 

6. Basic functionality 55 


User Guide Manual - V.1.1 
RB-1 
 
6.1. Robot controller 55 
6.1.1. ROS control 55 
6.1.2. Base hardware 56 
6.1.2.1. Status 56 
6.1.2.1.1. Drives status 56 
6.1.2.1.2. Battery 57 
6.1.2.1.3. Docking status 58 
6.1.2.2. Operations 59 
6.1.3. Kinematics controller 60 
6.1.3.1. Status 60 
6.1.3.2. Operations 60 
6.2. Command the base 61 
6.2.1. Twist mux 61 
6.2.2. Gamepad 61 
6.2.2.1. Configuration 62 
6.2.2.2. Battery charge 62 
6.2.2.3. How to use it 62 
6.3. RVIZ 63 

7. Advanced functionality 65 


7.1. Map Nav Manager 65 
7.2. GoTo 68 
7.3. Battery docking 69 
7.4. Kinova arm movement 70 
7.4.1 Arm ROS control 70 
7.4.2 Arm MoveIt control 70 

8. Technical specifications 71 


9. Maintenance 72 
9.1. Motor drivers 73 

10. Recycling of the robot 74 


11. Customer service and technical support 75 

   


User Guide Manual - V.1.1 
RB-1 
 

1. Introduction 
 
Welcome  to  the  RB-1  user  guide  manual.  This  document  describes  the  main  aspects  of  the 
robot.  

1.1. Overall robot description  


RB-1  is  an  autonomous  and  configurable  robot,  focused  on  the  field  of  research  in  indoor 
applications. 

RB-1 can be configured in different ways: 


 
● RB-1 without arm, ready to integrate a Kinova arm. 
● RB-1 with 7, 6 or 4 DOF arm with the option to integrate a 2 or 3 finger gripper. 
● RB-1  with  arm  of  Kinova  Gen3  Ultra  lightweight robot of 7 DOF, integrated 2D / 3D vision 
and parallel gripper. 
 

 
Figure 1. RB-1 robot 

1.2. Intended use and safety warnings 


This  point  describes  the safety devices that the RB-1 has implemented, as well as the indicators 
that  indicate  the  risks  that  the  robot  can  cause.  Furthermore,  some  situations  of  specific  risk 


User Guide Manual - V.1.1 
RB-1 
 
that  should  be  avoided  or  taken  into  account  for  the  correct  use  of  the  robot  are  explained  in 
this part. 
1.2.1. Safety concept 
While  reading  this  guide  you  may  find  some  warning  blocks.  These  include  important 
information related to common errors or safety concerns that the final user must know. 
 

WARNING​: a warning block   


 
“Warning” description includes information on an error and some possible solutions. 
 

 
FORBIDDEN​: a forbidden block   
“Forbidden” description includes information about the situation and how to avoid it. 
 

MANDATORY: a
​ mandatory block   
 

“Mandatory” description includes information to solve forbidden situations. 


 

1.2.2. Specific risk situations 


 
Specific  risk  situations  related  to  laser  detection  are  valid  as  long  as  the  robot  is 
equipped with certified safety lasers. 
 
STEPS UP AND DOWN 
  The  robot  is  not  able  to  go  up  or  down  steps,  it  must move on flat ground, although it 
can overcome small obstacles of up to 5 mm (for example a cable). 
 
SLOPES 
  The  robot  is  capable  of  climbing  a  maximum  slope  of  5º.  Any  greater  slope  can 
destabilize the robot, cause its rollover and damage itself or injure someone. 
 


User Guide Manual - V.1.1 
RB-1 
 
NON-DETECTABLES OBSTACLES 
  During  the  operation  of  the  robot, caution must be taken with those obstacles that are 
outside the field of vision of the sensors. 

The  sensors  of  the  platform  are  not  able  to  detect  obstacles  like  transparent  glass. 
The  glasses  must  be  marked  with  beacons  at  the  height  of  the  laser  beam.  Not 
marking with beacons, you could damage the robot or injure someone. 

1.2.3. General safety instructions 


 
The  robot  platform  should  not  be  moved  when  the  robot  is  connected  to  the  manual 
  charger. You could damage the robot. 

 
Figure 2. RB-1 with manual charger should not be moved 
 
Do  not  touch  the  copper  contacts  during the charging process in the charging station. 
  You could suffer a small electric shock that could cause a slight burn.  
 
Do  not  sprinkle water or oil on the robot or power charging cord.. The exterior cleaning 
  of  the  robot  must  be  done  with  pressurized  air  or  dry  cloth.  Contact  with  water  or  oil 
can cause electric shock or malfunction of the unit. 


User Guide Manual - V.1.1 
RB-1 
 

Figure 3. Do not sprinkle water or oil on the robot


 
The  robot  should  not  be  used  as  a  support  element  or  to  transport  people. You could 
  damage the robot or injure yourself. 

Figure 4. Do not use the robot as a support element


 
The  robot  must  not  be  lifted  or  pushed  from  any  point.  For  lifting  the  vehicle,  please 
  hold  the  robot  by the bottom of the chassis (perform the operation between 2 people). 
Incorrect use could damage the robot or injure someone. 
 


User Guide Manual - V.1.1 
RB-1 
 
Figure 5. The robot must not be lifted or pushed from any point
 
Do  not  overload  the  robot.  Check  its  maximum  payload  in  its  technical  specification. 
  Incorrect use could damage the robot or injure someone. 
 
Do  not  drive  the  robot  outdoors  when  the  weather  is  rainy.  You  could  damage  the 
  robot. 
 
Do  not  attempt  to  disassemble  or  modify  the  robot.  You  could  damage  the  robot  or 
  injure yourself. 
 

Keep the emergency stop pussed if there is an operator close to the robot. 
 
 
Remember  to  update  maps  when the route changes to avoid new fixed obstacles. Not 
  updating maps, you could damage the robot or injure yourself. 
 
Always  use  the  original  charger  and  plug  the  power  cord  firmly  into  the  wall  outlet. 
  Incomplete  insertion  in  the  wall  outlet  or  the  use  of  another  charger  could  cause  the 
plug to heat up, possibly causing a fire.
 
Follow  these  steps  if  there  is  evidence  of  a  battery  malfunction.  Use  personal 
  protective equipment, such as gloves, safety glasses and lab coat.  
 
● If  batteries  are  showing  evidence  of  thermal  runaway  failure,  be  very  cautious 
because  the  gases  may  be  flammable  and  toxic  and  failure  modes  can  be 
hazardous. 
● Disconnect the battery. Do not disassemble or break it. 
● Remove the battery from the robot.   
● Place the battery in a metal or other container away from combustibles.  
 

1.3. Applied standards 


 
RB1 complies the relevant provisions of the following EU directives or regulations. 
 


User Guide Manual - V.1.1 
RB-1 
 
● 2006/42/EC.  Directive  2006/42/EC of European Parliament and of the Council of 17 May 
2006 on machinery, and amending Directive 95/16/EC. 
 
Reference to the harmonized standards used, as referred to in Article 7. 
 
● EN  60204-1:2206/A1​.  Safety  of  machinery  -  Electrical  equipment  of  machines  -  Part  1: 
General requirements. 
● EN  ISO  12100:2010-11​.  Safety  of  machinery  –  General  principles  for  design  –  Risk 
assessment and risk reduction (ISO 12100:2010). 
● EN  ISO  13849-1:2015​.  Safety  of  machinery  –  Safety  related  parts  of  control  systems  – 
Part 1: General principles for design (ISO 13849-1:2015). 
● EN  ISO  13849-2:2012​.  Safety  of  machinery  –  Safety  related  parts  of  control  systems  – 
Part 1: Validation (ISO 13849-2:2012). 
● EN  ISO  13850:2015​.  Safety  of  machinery  –  Emergency  stop  function  –  Principles  for 
design (ISO 13850:2015). 
● EN  60204-1:2006-6​.  Safety  of  machinery  –  Electrical  equipment  of  machines  –  Part  1: 
General requirements. 
 
 

   


User Guide Manual - V.1.1 
RB-1 
 

2. Quickstart 
2.1. Unpacking the robot 
 

2.2. Start-up sequence 


To  turn  on  the  robot  you  need  to  interact  with  the  rear  panel  described  in  ​section  3.1.4  and 
follow the sequence detailed below: 
 
1. Turn the M ​ AIN POWER SELECTOR​ (2) ​to power on all the components of the robot 
 
2. Press the ​CPU POWER​ BUTTON​ (3) to turn on the mobile platform cpu. 
 
3. Press the ​RESTART BUTTON​ (4) to give power to the motor drivers 
 
With  this  sequence  the  default  program  of  the  mobile  platform  will  be  launched  and  it  can  be 
accessed by typing in a terminal of the robot or through a connection through ssh: 
 
screen -r bringup 

To  work  with  the  torso  it  is  necessary  to  perform  the  homing  procedure  (see  section  ​section 
5.11.​) 
 
2.2.1. Booting the robotic arm 
 
By  default,  the  robotic  arm  controller  boots  automatically  during  the  startup  process. What it is 
not  launched  by  default  is  the  MoveIt  controller.  You  can  launch  it  by  using  the  following 
command: 
 
roslaunch rb1_j2s7s200_moveit_config demo.launch 
 

2.3. Pad Teleoperation 


 
If  the  startup  sequence  has  been  executed  in  the  correct  order,  the  pad  will  light  up  ​blue  after 
pressing the start button. Then, the robot will be ready to be teleoperated. 

10 
User Guide Manual - V.1.1 
RB-1 
 

Figure 6. PS4 Pad Operation Mode Figure 7. PS4 Pad Operation Mode
 
NOTES 
 
● If  the  Bluetooth  connection  is  lost,  the  robot  will  detect  this  situation  and  will  STOP  for 
safety. 
● If Deadman button is NOT pressed, the robot will NOT move. 
● Sometimes  it  is  necessary  to  restart  the  pad  to  link  it  again  with  the  robot  controller.  To 
restart  it,  press  the  “Start”  button  until the light shuts down and afterwards proceed with the 
startup sequence. 
 

2.4. Power-off sequence


 

WARNING​: ​caution with the arm!   


 
As  the  robotic  arm  joints  do  not  have  integrated  brakes,  the  arm  will  fall  as  soon  as you turn 
off the power. Be sure that the arm is in a safe position or hold it to prevent any hit.  
 
 
To  power  off  the  robot  you  need  to  interact  with  the  rear  panel  described  in  ​section  3.1.4  and 
follow the sequence detailed below: 
 
1. Press the ​CPU POWER​ BUTTON​ (​ 3) to turn off the cpu of the mobile platform.  
2. Wait until the button light (3) is switched off.  
3. Turn off the​ ​MAIN POWER SELECTOR​ (2) to cut the power off. 

11 
User Guide Manual - V.1.1 
RB-1 
 

3. Robot components
This point describes the main parts of the RB-1 mobile robot. Every main piece includes a little
description of the mechanical component that composes it.

The next figure shows the main external parts of the default robot: 

 
Figure 8. Main external elements of RB-1 
 

3.1. RB-1 Base components 


This section will show the main parts that make up the RB-1 Base. 

12 
User Guide Manual - V.1.1 
RB-1 
 

 
Figure 9. RB-1 Base (Internal main components) 
3.1.1. Base covers 
Base  covers  are attached to the robot with screws. To remove them you just have to remove the 
screws,  the  following  image  shows  all  the  screws that hold the covers (the same screws are on 
the opposite side shown in the image). 

13 
User Guide Manual - V.1.1 
RB-1 
 

 
Figure 10. RB-1 Base (covers screws) 

 
Figure 11. RB-1 Base (covers removed) 

3.1.2. Motor-wheels and omniwheels 


The robot has two motor wheels and three omniwheels as it’s shown in the next picture. 

14 
User Guide Manual - V.1.1 
RB-1 
 

 
Figure 12. RB-1 Base Wheels 

The  motor  wheel  is  composed  by a motor block and a detachable wheel. The motor block has a 


250w  8  poles  brushless  motor  with  Hall  Effect  sensor,  an  encoder  and  a  reduction  gear  box. 
These  kinds  of  motors  have  a much longer life expectancy and a higher efficiency than brushed 
motors. 

Figure 13. Main components of motor-wheel 

15 
User Guide Manual - V.1.1 
RB-1 
 

The  omni  wheels  gives  stability  to  the platform and permits the turning around the center of the 


robot. 

3.1.3. Control box 


The  control  box  contains  all  the  electronic  and  control  components  that  make  the  robot's 
operation possible. The following image shows the internal components. 

Figure 14. Control Box components 

To remove the robot control box follow the instructions in the following images. 

16 
User Guide Manual - V.1.1 
RB-1 
 

 
Figure 15. How to remove the control box 

17 
User Guide Manual - V.1.1 
RB-1 
 

3.1.4. Rear panel 

 
Figure 16 - RB-1 back panel 

1. EMERGENCY  STOP  BUTTON​:  disables  the  power  and  stops  the  robot.  To  move  the  robot, 
the EMERGENCY BUTTON (red) must be pulled out. 
2. MAIN POWER SELECTOR​: powers on/off the whole robot. It has a green light indicator. 
3. CPU POWER BUTTON:​ green indicator/switch: turns on/off the main/base cpu. 
4. RESTART BUTTON​: orange indicator button restarts the power of robot.  
5. CHARGER CONNECTOR:​ to connect the manual battery charger. 
6. USB 2.0 PORTS​: two usb port connected to the main/base cpu. 
7. ETHERNET PORTS​: WAN and LAN ports connected to the internal router 
8. HDMI PORT:​ connected to the main/base cpu. 
9. FUSE COVER​: remove the cover to access the fuses. 
10. FAN​: cools the inside of the control box. 
 
3.1.5. 2D Laser sensor 
The  default  configuration  of  RB-1  has  installed  a  2D  laser  located  on  the  front,  which  gives  it a 
270º vision range. 
 
The vision range detects any obstacle located at a height of 195 mm from the ground. 

18 
User Guide Manual - V.1.1 
RB-1 
 

In case of any emergency, the RB-1 has an available emergency stop button on the back. 
Press it to stop the vehicle. Release it to get back to normal operation. 

There are different 2D laser model that can be installed in RB-1. If you need more specific 
information about some model, contact with Robotnik support department to request it. 

3.1.6. 3D Camera 
RB-1  Base  has  installed  a  3D  camera,  model  Orbbec  Astra  S,  to  improve  its  functions.  This 
standard  device  adds  interesting  features  such  as  obstacle  detection,  the  robot  location  or 
reading QR markers, in addition to configure reactive navigation operations. 

3.1.7. Battery 
The  robot  receives  the  power  supply  from  a  LiFePO4  battery  pack.  It  is  composed  of  sixteen 
3.2V  LiFePO4  cells  and  a protection circuit module. With this set of batteries the robot is able to 
operate up to 10 hours or more, depending on the robot movements. 

The  robot  circuit  is  powered  when  the  general  switch  S1  is  ON.  The  control  DC/DC  converter, 
that makes power to different devices of control, is powered at the same time. 

The  batteries  are  connected  to  the  robot through the fuses. For charging the batteries there is a 


connector  at  the  back  panel  of  the  robot  where  the  charger  can  be  connected.  It  is  a  direct 
connection,  so  the  general  ON/OFF  switch  doesn’t  affect  the  charging.  It  is  possible  to  charge 
the robot and keep working at the same time without any problem. 

There  is  a  15A  fuse  (F0)  between  the  connector  and  the batteries for safety. This fuse is on the 
control box. 

Also there are to plates in the front of the battery to connect to the automatic charging station. 

There  is  a  20A  fuse  (F00) between the plates and the batteries for safety. This fuse is inside the 


battery pack. 

Full  charging  time  is  around  45-60  minutes  for  the  supplied  charger.  Do  not use other chargers 
without checking battery specifications. 

19 
User Guide Manual - V.1.1 
RB-1 
 

 
Figure 17. Main components of battery 

To remove the battery from the robot you must follow the steps shown in the following image. 

20 
User Guide Manual - V.1.1 
RB-1 
 

 
Figure 18. Battery removal 

3.2. RB-1 Torso components 


This section will show the main parts that make up the RB-1 Torso. 

3.2.1. Torso and Head 


The  torso  of  the  RB1  robot  is  capable  of  lifting  up  to  350  mm  and  can  carry  one  of  the  Kinova 
arms  on  the  front  (Gen2  /  Gen3).  At  the  top  it  has  a  pan-tilt  mechanism  (“Head”)  that includes: 
an  Orbbec  Astra  S  camera, microphone and speakers on both sides. It is also possible to mount 
an external device on the pan-tilt and connect it at the bottom. 
 
The lifting mechanism and the pan-tilt are driven by Dynamixel Pro motors. 

21 
User Guide Manual - V.1.1 
RB-1 
 

 
Figure 19. RB1 Torso components 

3.2.2. Torso covers 


 
The  torso  and  pan-tilt  covers  can  be  removed  as  shown in the following images (the red circles 
show the screws that hold the covers). 

22 
User Guide Manual - V.1.1 
RB-1 
 

 
Figure 20. RB1 Torso covers 

 
Figure 21. RB1 Head covers 

23 
User Guide Manual - V.1.1 
RB-1 
 

3.2.3. Torso electronics 


Inside the torso are the electronic components and the actuator that operates the lifting system. 

 
Figure 21. Torso internal components 

3.3. Arm 
RB-1 can integrate the Kinova Gen2 Ultra lightweight robot 7, 6 or 4 DOF arm and incorporate a 2 
or  3  fingers  gripper  or  integrate  the  Gen3  Ultra  lightweight  robot  arm  of  7  GDL,  integrated  2D  / 
3D  vision  and  Robotiq  2F-85  parallel  gripper.  These  allow  users  to  interact  with  their 
environment  in  total  safety,  freedom  and  efficiency.  Soundless  and  smooth  movement  with 
unlimited rotation on each axis. 
 

24 
User Guide Manual - V.1.1 
RB-1 
 

 
 
Figure 22. Kinova Gen2 and Gen3 arm robot - ​https://www.kinovarobotics.com 

3.4. Accessories 
3.3.1. Dualshock gamepad 
The dualshock gamepad is a default robot item and it is used for the manual movements of the
robot. Its receiver is located inside the robot and connected to one USB port of the computer.

Figure 23. Dualshock controller

The two joysticks are used for direction, traction and there are important controls like the speed
level buttons.

If  you  need  more  specific  information  about  the  DualShock,  contact  with  Robotnik  support 
department and request it. 
 
 

25 
User Guide Manual - V.1.1 
RB-1 
 
3.3.2. Manual charger 
The  manual  charger  is  a  default  robot  device  and  it  is  used  for  charging  the  robot  manually. 
Depending on the robot battery, the manual charger have different charging power. 
 

 
Figure 24. Manual charger 

For  charging  the  batteries  manually,  there  is  a  connector  at  the  back  panel  of  the  robot  where 
the  charger  can  be  connected.  It  is  a  direct  connection  to  the  battery,  so  the  general  ON/OFF 
switch  doesn’t  affect  the  charging.  It  is  possible  to  charge  the  robot  and  keep  working  at  the 
same time. 

If  you  need more specific information about the different charger models, contact with Robotnik 


support department and request it. 

3.3.3. Docking station charger 


 
The  docking station charger is an optional accessory for the RB-1 (figure 25). This component is 
necessary  in  applications  that  the  robot  has  to  do  automatic  charges.  Depending  of  the  robot 
application, docking station can be normal charging or fast charging. 

26 
User Guide Manual - V.1.1 
RB-1 
 

 
Figure 25. Docking station charger 
 
Once the station is plugged in and the switch ON, the station is ready to charge the robot. 
Some details to highlight are: 
 
● The  roller  switch  is  activated  when  the  copper  contact  plates  are  pushed.  At  this  point 
the  relay  will  be  active,  closing  the  circuit  that  the  charger  internally  provides  to 
enable/disable the charge. A second feedback of this is that the indicator light will lit up. 
● The  robot  contacts  are  equipped  with  an  internal  circuitry  and a magnetic sensor. When 
the  robot  approaches  the  docking  station,  the  magnets  placed  below  the  contacts  will 
activate the robot circuitry, permitting the current flow. 
● The  charger  input  is  admitting  either  230VAC  or  115VAC  selectable  with  a  switch  (only 
with  normal  charger).  Please  keep  in  mind  that  plugging  the  station  to  a  non-selected 
voltage  net  will  damage  the  charger.  If  you  need  to  change  this  input  voltage,  open  the 
station cover and change the charger switch.   
 

   

27 
User Guide Manual - V.1.1 
RB-1 
 

4. Software architecture 
4.1. ROS architecture 
 
ROS  is  an  open-source  meta-operating  system  for  your  robot  that  provides  inter-process 
message passing services (IPC) in a network. 
 
ROS is also an integrated framework for robots that provides: 
 
● Hardware abstraction layer 
● Low level device control 
● Robot common functionality (simulation, vision, kinematics, navigation, etc.) 
● IPC 
● Package and stack management 
 
ROS  provides  libraries  and  tools  to  ease the development of robot software in a multi-computer 
system.  

 
Figure 26. ROS Multi-computer schema 
 
 
ROS offers a framework to solve common research and development needs of robot systems: 
 
● Cooperation of different research groups  
● Proven functionality 
● Easy and robust access to robotics hardware 
 

28 
User Guide Manual - V.1.1 
RB-1 
 
One  of  the  main  objectives  of  ROS  is  the  code  reusability.  This  objective  is  fulfilled  by  a  large 
and  growing community of developers that share their results worldwide, and by the inclusion of 
other  robot  frameworks  (ROS  integrates  Player/Stage,  Orocos,  etc.)  and  other  open-source 
components (like Gazebo or Openrave).  
 
ROS  integrates  additional  development  tools  like  rviz  (simulation  of  complete  robots  and 
environments  with  maps),  rxgraph  (visualization  of  node  interconnection),  rosbag  (extreme 
useful data logging utility), etc. 
 
For  detailed  systems  descriptions,  tutorials,  and  a  really  important  number  of  stacks  and 
packages, please visit w​ ww.ros.org​. 
 

4.2. Robot packages 


 
This  section  gives  an  overview  of  the  packages  included  in  the  workspace  of  the  robot 
(commonly  the  folder  catkin_ws  located  in  the  home  folder  of  the  robot).  The  RB1  has  its 
specific packages but it also uses some of the RB1-Base packages. 
 
4.2.1. rb1_common 
 
Common  packages  of  the  RB1:  URDF description of the RB1 platform, messages and other files 
for simulation. 
 
● rb1_description​:  The  urdf,  meshes,  and  other  elements  needed  in  the  description  are 
contained  here.  This  package  includes  the  description  files  of  the  RB1.  Also  needs  the 
description  files  of  the  rb1_base_description  and  rb1_torso_description  packages.  The 
package  includes  also  some  launch  files  to  publish  the  robot  state  and  to  test  the  urdf 
files in rviz. 
 
● rb1_control​:  This  package  along  the  rb1_base_control  and  rb1_torso_control  packages 
contains  the  launch  and  configuration  files  to  spawn  the  joint  controllers  with  the  ROS 
controller_manager. 
 
● rb1_j2s7s200_moveit_config​:  This  package  contains  the  launch  and  configuration  files 
to use moveit for UR10. 
 
● rb1_pad​:  This  package  contains  the  node  that  subscribes  to  /joy  messages  and 
publishes  command  messages  for  the  robot  platform  including  speed level control. The 
node  allows  to  load  different  types  of joysticks (PS4, PS3, Logitech, Thrustmaster). New 
models can be easily added by creating new .yaml files. 
 

29 
User Guide Manual - V.1.1 
RB-1 
 
4.2.1. rb1_base_common 
 
● rb1_base_localization​:  This  package  contains  several algorithms used in the localization 
of the RB1 robot, both at the local level (odometry) and global level (maps, gps). 
 
● rb1_base_navigation​:  This  package  contains  the  configuration  to use the RB1 robot with 
the ROS Navigation stack. 
 
4.2.2. rb1_robot 
 
● rb1_bringup​:  This  package  contains  launch  files to start the robot. The most relevant file 
is  ​launch/rb1_complete.launch​,  that  is  called  from  the  ~/.bashrc  at  system  startup.  The 
file  can  be  configured  to  start  the  available  devices  like  lasers,  cameras,  rgbd  devices, 
imus,  gps,  etc.  It  integrates  several  test  launch  files  to test the components individually. 
This file defines the robot serial number as parameter. 
 
4.2.3. rb1_base_robot 
 
● rb1_base_controller​:  Controller  plugin  compatible  with  ​ros_control  architecture.  This 
component is in charge of setting & reading the robot motor joints. 
 
 
4.2.4. Other packages 
 
● astra_camera​:  This  ROS  package  provides  an  orbbec  astra  camera  driver,  written  in 
Python. 

● eband_local_planner​:  It  is  a  ROS  package  that  implements  a  plugin  to  the 
base_local_planner  for  the  move_base  2D  navigation  system.  It  implements  the  Elastic 
Band method on the SE2 manifold. 

● imu_manager​:  Package  that  manages  imu  calibration  and  its state. It will check current 


calibration  state  of  the  IMU  and  if  it  is  necessary,  it  will cause IMU calibration whenever 
the robot is not moving. During this process, the robot control is disabled. 

● map_nav_manager​:  A  ROS  node  to  manage  processes  for  performing  mapping, 


navigation and monitoring from a web-based user interface. 

● poi_manager​:  A  ROS  node  to  manage  the  points  of  interest  in  a  map.  It  reads  a  list  of 
tagged positions from a YAML file and offers services to obtain the list and update it. 

● rb1_sim​: Package that allows to start a simulation of the RB1 robot with Gazebo. 

30 
User Guide Manual - V.1.1 
RB-1 
 
● rcomponent​:  Basic  component  that  defines  the  state  machine  common  to  most 
components developed by Robotnik. 

● robot_localization_utils​:  It  provides  nodes  and  helpers  to  use  robot_localization 


packages with Robotnik robots and in order to calibrate IMU sensors as the PIXHAWK. 

● robotnik_base_hw​:  ROS  RobotHW  component  based  on  ros_control  architecture.  This 


component is compatible with most of the Robotnik's motor hardware. 

● rly_816​:  This  component  is  intended  to  read  digital  I/O  to  check  the  endstops  of  the 
torso. 

● robotnik_msgs​: Definition of msgs and services used by some Robotnik's packages. 

● robotnik_sensors​: Robotnik standard sensors description. 

● system_monitor​: System monitoring tools for ROS. 

● kinova-ros​:  Original  package  from  kinova  with  some  minor  modifications  to  improve 
performance. It has the kinova drivers and the STL models for simulation. 

  
 
 
 
 

   

31 
User Guide Manual - V.1.1 
RB-1 
 

5. Configuration 
 

5.1. Users & passwords 


 
In this section you can find all the user and password configurations of the internal devices. 
 
Mobile platform CPU 
 
User  rb1 

Password  R0b0tn1K 
 
Router 
 
User  admin 

Password  R0b0tn1K 
 
 
 

   

32 
User Guide Manual - V.1.1 
RB-1 
 

5.2. Network 
 
The  RB1  has  its  own  WiFi  network  for  all  internal  components  communication  and  remote 
control.  In  the  following  diagram  there  are  all  network  connected  devices  with  their  IP 
addresses: 
 

 
 
Figure 27. Robot network schema 
 
 
Device  IP address 

Mobile platform CPU  192.168.0.200 

Router  192.168.0.1 

Front Laser  192.168.0.10 

   

33 
User Guide Manual - V.1.1 
RB-1 
 

5.3. Devices 
 
The  devices  connected to the robot have two ways of connection: via network or via USB. If they 
are  connected  through  the  robot  network,  they  are  configured  with  a  static  IP  to  have  them 
identified  (as  shown  in  ​5.2.  Network​).  If  connected  by  USB,  udev  rules  are  usually  defined  to 
identify  devices  with  names.  The  names  and  IPs  of  the  devices  are  defined  as  environment 
variables, as specified in the following section. 
 

5.4. Basic robot params 


 
In  the  home  folder  of  the robot there is a file called ​robot_params.env. In this file are defined the 
main  configurable  parameters  of  the  robot.  In  the  following  table  there  is  a brief explanation of 
all the possibilities.  
 
Parameter  Description  Possible value 

ROBOT_ID  Indicates  the  name  of  the  robot.  This 


is  the  name  of  the  namespace  under 
- rb1 
all  the  nodes  will  be  working.  This  is 
- robot 
also  used  as  the  prefix  of  all  the 
subcomponents. 

ROBOT_ARM  Indicates  the  name  of  the  arm. 


Depending  on  the  name  set  here,  one 
- j2s7n200 
or  other  launch  file  and  URDF  files will 
be used. 

ROBOT_XACRO  Indicates  the  path  where  the xacro file 


- rb1_robot_j2s7s
is;  inside  the  robot  folder  in 
200.urdf.xacro 
robot_description.  

ROBOT_HAS_FRONT_LASER  Indicates  if  the  robot  has  a  front  laser  - true 


in front.  - false 

ROBOT_LASER_MODEL  Indicates  the  model  of  the  front  laser  - sick_tim561 


that  the  robot  is  using.  The  model  is  - hokuyo_ug01 
the name of the launch file.   - hokuyo_ust 

ROBOT_LASER_PORT  Port  of  the  front  laser  if  its  connected  /dev/ttyFRONT_LA
using USB.  SER 

34 
User Guide Manual - V.1.1 
RB-1 
 
ROBOT_LASER_IP  Port  of  the  front  laser  if  its  connected 
192.168.0.10 
using Ethernet. 

ROBOT_HAS_FRONT_RGBD_ Indicates if the robot has front camera  - true 


CAMERA  - false 

ROBOT_FRONT_RGBD_CAM Front camera id to identify in the bus  - #1  (only  for 


ERA_ID  orbbec astra) 
- serial number 

ROBOT_HAS_TORSO_RGBD_ Indicates if the robot has torso  - true 


CAMERA  camera  - false 

ROBOT_TORSO_RGBD_CAM Rear torso id to identify in the bus  - #2  (only  for 


ERA_ID  orbbec astra) 
- serial number 

ROBOT_BASE_HW_CHARGI Offset applied to the current measured 


Decimal  value  (i.e: 
NG_CURRENT_OFFSET  by the sensor to consider whether or 
0.1) 
not the robot is charging. 
 

5.5. ROS server 


 
The  ROS  Master  lets  the  nodes  to  be  able  to  find  each  other,  exchange  messages,  or  invoke 
services.  Connecting a remote computer to the ROS Master of the robot, allows the visualization 
of  all  messages  that  are  being  published  on  the  server,  as  well  as  interaction  with  the  robot 
through actions and services. 
 
5.5.1. Connecting with a remote PC 
 
Some  metapackages  of  the  software  have  to  be  present  in  the  remote  computer  in  order  to 
operate  the  robot  remotely.  Some  of  the  most  useful  tools  are  rviz (ROS Visualization tool) and 
rqt. To be able to use these in the remote machine, you will need to: 

1. Install R
​ OS 
 
2. Create a workspace. More info ​here​. Copy the same src folder as found on the robot 
(you have to remove the “robotnik_base_hw” package if the PCan driver is not installed in 
your computer). 

35 
User Guide Manual - V.1.1 
RB-1 
 
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace 
 
3. Download and install dependencies and compile the stacks: 

cd ~/catkin_ws
rosdep install --from-path src --ignore-src -y -r
catkin_make 
 
Once  ROS  is  installed  in  your  machine  you  will  need  to  configure  this  machine  to  being  able  to 
connect to the RB1 ROS_MASTER. 
 
1. Add the robot hostname in your /etc/hosts file: 

192.168.0.200 SerialNumber 
 
2. Add your computer hostname in​ the robot /etc/hosts file: 

YourIp YourHostname 
 
3. Start the RB1 robot, connect to its wifi network, open a terminal and type:
 
export ROS_MASTER_URI=http://SerialNumber:11311
cd ~/catkin_ws
source devel/setup.bash 

4. If everything worked, you should be able to see all the topics published by the robot and
the services offered by the robot controller:

rostopic list
rosservice list 

5. You can view the values published by the nodes with rostopic echo, e.g.:

rostopic ​echo​ /tf 

36 
User Guide Manual - V.1.1 
RB-1 
 
At this stage you can have a first look at the robot with

rqt 

and

rosrun rviz rviz 


 

5.6. Bringup 
 
The  main  program  of  the  mobile  platform  is  launched  by  default  and  accessible  by  typing  in  a 
terminal:  
 
screen -r bringup 
 
The  file  with  the  program  is named ​rb1_complete.launch can be found in the folder ​launch in the 
package r​ b1_bringup ​. 
 
This program execution contains the following nodes: 
 
Node  Description 

rb1_state_robot  Is responsible for publishing the urdf of the robot and its 
joints. 

rb1_pad  Is responsible for allowing the remote control of the 


robot with the ps4 remote. 

robotnik_base_hw  This node contains the driver of the robot motors. 

rb1_control  This node is responsible for controlling the commands 


to the motors in order to achieve a desired pose. 

rly_816  Executes the program needed to get the endstop 


feedback. 

dynamixel_controllers  Driver to control the dynamixels of the torso and head. 

kinova_arm  Driver to control the kinova arm 

37 
User Guide Manual - V.1.1 
RB-1 
 
pixhawk  Controls the imu used. 

rl_utils  Provides nodes and helpers to use robot_localization 


packages with Robotnik robots in order to calibrate the 
IMU. 

map_nav_manager  Publishes the website that contributes to visualize the 


generated maps and executing nodes. 

laser_node  Provide the scan of the laser of the robot. 

front_rgbd_camera/torso_rgbd_ca
Nodes responsible of the two rgbd cameras. 
mera 

imu_manager  Node to auto-calibrate IMU if it’s necessary 

joint_trajectory_action_server  Action server for allow kinova arm to be controlled from 


moveit. 

3d_laser_to_2d  Executes a pointcloud to laserscan node and a laser 


filter to transform the RGBD camera pointcloud to a 2D 
laser scan. 

rb1_base_docking  Provides the needed action server to control the 


auto-docking of the RB1. 
 

5.7. Controller 
 
The  motors  of  the  wheels  of  the  RB1  are  controlled  through  drivers  that  accept the commands 
from  the ROS software of the robot. This one is called robotnik_base_hw and sends joint speeds 
to the wheels according to the linear and angular velocity desired for the platform. 
 
5.7.1. robotnik_base_hw 
 
As  mentioned  in  the  previous  section,  the  robotnik_base_hw  node  is  launched  in  the  main 
platform program by default when turning on the CPU. 
The  configurable  parameters  of  this  node  are  located  in  the  folder  ​config  in  the  package 
rb1_bringup ​. The file is named ​robotnik_base_hw.yaml a ​ nd contains: 
 
Parameter  Description 

port  Port where the can driver is in the cpu 

38 
User Guide Manual - V.1.1 
RB-1 
 
diameter_wheel  Wheel diameter 

gearbox_ratio  Ratio of the gearbox 

motors_encoder  True if the motors have an encoder 

motors_encoder_factor  Factor of the encoder used 

Names  of  the  joints  of  the  wheels  of  the 


joint_name 
mobile platform 

Each  driver  has  its  own  id  that  will  be  related 
joint_can_id 
to the joints of the wheels 

Specification  of  the  type  of  control  used: 


joint_type 
velocity or position 

If  there  is  an  offset  in  the  initial  position  it 
joint_home_offset 
should be specified here 

joint_spin  Specifies the turning direction of the motors 


 
 

WARNING  
 
- These  parameters  shouldn’t  be  changed  during  the  normal  use  of  the  robot  because 
they are configured with the motor drivers in the manufacturing process. 
- The incorrect configuration can lead to unexpected behavior 
 
 

5.8. Mapping 
 
The  RB1  robot  is  able  to  map  its  environment  thanks  to  the  equipped  laser.  The easiest way of 
doing  this  is  through  the  map_nav_manager.  The  mapping  process  can  be  started  through  the 
services  provided  by  the  web  (​7.1.  Map  Nav  Manager​).  Also  can  be  done  through  bash;  having 
the bringup launched, execute: 
 
ROS_NAMESPACE=rb1 roslaunch rb1_base_localization gmapping.launch 
 

39 
User Guide Manual - V.1.1 
RB-1 
 
Once you have the desired map, execute the following command to save it: 
 
ROS_NAMESPACE=rb1 rosrun map_server map_saver -f map 
 

WARNING​: The map is empty   


 
- Make  sure  the  rest  of  the  robot  software  is  running.  Try  moving  it  with  the  remote 
control. 
- Check if the laser is publishing data. (​rostopic echo /rb1/front_laser/scan​) 
- Make  sure  that  slam_gmapping  node  is  subscribing  to  the  right  scan  topic.  (​rostopic 
info /rb1/front_laser/scan​) 
 
 
 

5.9. Localization 
 
First of all you have to load the map you are going to work with. To do this, execute: 
 
ROS_NAMESPACE=rb1 roslaunch rb1_base_localization map_server.launch
prefix:=rb1 
 
The  available  maps can be found in the ​rb1_base_localization package, in the ​maps folder. If you 
want to change the map that is loaded: 
 
ROS_NAMESPACE=rb1 roslaunch rb1_base_localization map_server.launch
prefix:=rb1 map_file:=file_to_load 
 
 

WARNING​: The map is not loaded  


 
- Check that the map is saved in the ​rb1_base_localization​ package, in the ​maps​ folder. 
- Make sure that the map filename is correct. 
- If  you  have  changed  the  name  of  the  map  file,  you  will  need  to  edit  the map_file.yaml 
too. This yaml file contains a reference to the pgm file. 

40 
User Guide Manual - V.1.1 
RB-1 
 
 
 
Once you have the map loaded, you need to run the localization program: 
 
ROS_NAMESPACE=rb1 roslaunch rb1_base_localization amcl.launch 
 
 

WARNING​: The localization is not working   


 
- Check that the map_server is running. (​rosnode list | grep map_server​) 
- Check if the laser is publishing data. (​rostopic echo /rb1/front_laser/scan​) 
- Make  sure  that  localization  node  is  subscribing  to  the  right  scan  topic.  (​rostopic  info 
/rb1/front_laser/scan​) 
 
 
The  localization  process can be started through the services provided by the map_nav_manager 
web (​7.1. Map Nav Manager​). 
 

5.10. Navigation 
 
RB1  can perform the two types of autonomous moves depending on whether they are relative or 
map-based.  The  relative  movements  can  be  performed  with  two  different  actions:  move  or 
dock.  
 
5.10.1. Move_base 
 
The  move_base  package  provides  an  implementation  of  an  action that, given a goal in the map, 
will  attempt  to  reach  it  with  a  mobile  base.  The  move_base  node  links  together  a  global  and 
local  planner  to  accomplish  its  global  navigation  task.  The  local  planner  used is the Eband that 
will be detailed later. 
 
The  configurable  parameters  are  located  in  several  files  in  the  ​config  folder  of  the  package 
rb1_base_navigation .​ The main file related with move_base is named ​move_base_params.yaml ​. 
 
Parameter  Description  Default value 

The  rate  in  Hz  at  which  to  run  the  control  loop 
controller_frequency  20 
and send velocity commands to the base. 

41 
User Guide Manual - V.1.1 
RB-1 
 
How  long  the  controller  will  wait  in  seconds 
controller_patience  without  receiving  a  valid  control  before  15 
space-clearing operations are performed 

The  rate  in  Hz  at  which  to  run  the  global 
planning  loop.  If  the  frequency  is set to 0.0, the 
planner_frequency  global  planner  will  only  run  when  a  new  goal  is  0 
received  or  the  local  planner  reports  that  its 
path is blocked 

How  long  the  planner  will  wait in seconds in an 


planner_patience  attempt  to  find  a  valid  plan  before  5 
space-clearing operations are performed. 

The distance away from the robot in meters 


beyond which obstacles will be cleared from 
the costmap when attempting to clear space in 
conservative_reset_dist  0 
the map. Note, this parameter is only used 
when the default recovery behaviors are used 
for move_base. 

Whether  or  not  to  enable  the  move_base 


recovery_behavior_enab
recovery  behaviors  to  attempt  to  clear  out  true 
led 
space. 

Determines whether or not the robot will 


attempt an in-place rotation when attempting 
to clear out space. Note: This parameter is only 
clearing_rotation_allowe
used when the default recovery behaviors are  true 

in use, meaning the user has not set the 
recovery_behaviors parameter to anything 
custom. 

Determines whether or not to shutdown the 


shutdown_costmaps  costmaps of the node when move_base is in an  false 
inactive state 

How long in seconds to allow for oscillation 


oscillation_timeout  before executing recovery behaviors. A value of  0 
0.0 corresponds to an infinite timeout. 

How far in meters the robot must move to be 


considered not to be oscillating. Moving this far 
oscillation_distance  0.5 
resets the timer counting up to the 
~oscillation_timeout 

42 
User Guide Manual - V.1.1 
RB-1 
 
How many times to allow for planning retries 
max_planning_retries  before executing recovery behaviors. A value of  1 
-1.0 corresponds to an infinite retries. 

 
 

WARNING​: The navigation is not working   


 
- Check that the map_server is running. (​rosnode list | grep map_server​) 
- Check that the localization is running. (rosnode list | grep amcl) 
 
 
The  navigation  process  can  be  started  through  the  services  provided by the map_nav_manager 
web (​7.1. Map Nav Manager​). 
 
 

5.10.1.1. EBand 
 
The  file  related  to  the  configurable  parameters  of  the  local  planner  used  is 
eband_local_planner_omni_params.yaml  ​.  This  file  can  be  found  in  the  ​config  folder  of  the 
rb1_base_bringup​ package. 
 
The  most  used  ones  are  presented  below,  for  more  information  visit  the  official  website 
http://wiki.ros.org/eband_local_planner​ . 
 
Goal tolerance parameters 

Parameter  Description  Default value 

xy_goal_tolerance  Distance tolerance for reaching goal pose.  0.1 

Orientation  tolerance  for  reaching  the desired 


yaw_goal_tolerance  0.05 
goal pose. 

Angular  velocity  lower  bound  that  determines 


rot_stopped_vel  if  the  robot  should  stop  to  avoid  limit-cycles  0.01 
or locks. 

43 
User Guide Manual - V.1.1 
RB-1 
 
Linear  velocity  lower bound that determines if 
trans_stopped_vel  the  robot  should  stop  to  avoid  limit-cycles  or  0.01 
locks. 
 
 
Elastic band parameters 

Parameter  Description  Default value 

Force  gain  of  forces  between  consecutive 


eband_internal_force_gain  1.0 
bubbles that tend to stretch the elastic band 

Force  gain  of  forces  that  tend  to  move  the 


eband_external_force_gain  2.0 
bubbles away from obstacles 

num_iterations_eband_optim
Number of iterations for eband optimization  3 
ization 

Costmap weight factor used in the calculation 
costmap_weight  10 
of distance to obstacles. 
 
Trajectory controller parameters 

Parameter  Description  Default value 

max_vel_lin  Maximum linear velocity.  0.75 

max_vel_th  Maximum angular velocity.  1.0 

min_vel_lin  Minimum linear velocity.  0.1 

min_vel_th  Minimum angular velocity.  0.0 

min_in_place_vel_th  Minimum in-place angular velocity.  0.0 

in_place_trans_vel  Minimum in place linear velocity.  0.0 

k_prop  Proportional gain of the PID controller.  4.0 

k_damp  Damping gain of the PID controller.  3.5 

Ctrl_Rate  Control rate.  10.0 

max_acceleration  Maximum allowable acceleration.  0.5 

44 
User Guide Manual - V.1.1 
RB-1 
 
max_translational_accelerati
Maximum linear acceleration.  0.5 
on 

max_rotational_acceleration  Maximum angular acceleration.  1.5 

Rotation  correction  threshold.  If  the  distance 


to  the  goal  is  bigger  than  this  number  the 
rotation_correction_threshol robot  will  rotate  before  moving  linearly  to 
0.5 
d  face  the  right  way.  This  means  the  robot  will 
not  move  omni  for  straight  distances  bigger 
than this number. 

Denotes  whether  to  use  the  differential  drive 


differential_drive  True 
mode. 

Multiplier  of  rotation  threshold.  If  the 


difference  between  the  next  point  location  in 
the  trajectory  is  less  than  this  number,  the 
robot  will  perform  linear  and  angular 
movements  in  the  direction  of  the  goal.  On 
rotation_threshold_multiplier  1.0 
the  other  hand  if  the  distance  to  the  next 
point  is bigger than this number, the robot will 
perform  firstly  a  rotation  until  this  difference 
is  in the threshold and then move towards the 
goal. 

Determines  whether  to  try  getting  closer  to 


disallow_hysteresis  False 
the goal, in case of going past the tolerance. 
 

5.10.1.2. TEB 
 
The  initial  trajectory  generated  by  a  global  planner is optimized during runtime w.r.t. minimizing 
the  trajectory  execution  time  (time-optimal  objective),  separation  from  obstacles  and 
compliance  with  kinodynamic  constraints  such  as  satisfying  maximum  velocities  and 
accelerations. 
The configurable parameters are stored in rb1_base_navigation/config/ depending on the wheel 
configuration (diff or omni, always has to be diff in case of RB1): 

○ Maximum velocities and accelerations 


○ Minimum obstacle distance 

45 
User Guide Manual - V.1.1 
RB-1 
 
○ Goal tolerances 

5.10.2. Move 
 
This  component  is  intended  to  perform  basic  movements.  These  movements  are  based on the 
odometry  frame of the robot. They allow the robot to rotate on itself, to move forward/backward 
and sideways (if it has omni wheels). 
 
 

This  type  of  movement  does  not  avoid  obstacles.  The  robot  will  stop  for  safety  if  it  is  equipped  with  the 
  hardware safety package and an obstacle within the safety range. 

 
Allows  RB1  to  perform  linear and angular movements based on its odometry. Messages related 
to the ​Move​ action are defined in the M
​ ove.action​ file of the r​ obotnik_navigation_msgs​ package: 
 
# goal
geometry_msgs/Pose2D​ ​goal
geometry_msgs/Twist​ ​maximum_velocity
---
# result
bool​ ​success
---
# feedback
geometry_msgs/Pose2D​ ​remaining
geometry_msgs/Twist​ ​current_velocity 
 
 

Try  to  send  only  send  linear  (x  and/or  y)  or  angular  displacement.  The  combination  of  linear  and  angular 
  displacement is not allowed. 

 
The configurable parameters are located in the file r​ b1_base_navigation/launch/move.launch​. 
 
 
Parameter  Description  Default value 

Robot  frame  to  perform  the  relative 


robot_base_frame  base_footprint 
movement. 

Fixed  reference  to  perform  the  relative 


fixed_frame  odom 
movement. 

maximum_linear_velocity_x  Maximum linear velocity allowed in x.  0.2 

46 
User Guide Manual - V.1.1 
RB-1 
 
Maximum  linear velocity allowed in y. Only 
maximum_linear_velocity_y  used  if  the  differential_robot  is  set  to  0.2 
false. 

maximum_angular_velocity_z  Maximum angular velocity.  0.2 

threshold_linear_velocity_x    0.001 

threshold_linear_velocity_y    0.001 

threshold_angular_velocity_z    0.001 

Linear  x  velocity  gain  to  perform  the 


gain_linear_velocity_x  1 
translation. 

Linear  y  velocity  gain  to  perform  the 


gain_linear_velocity_y  1 
translation. 

Angular  velocity  gain  to  perform  the 


gain_angular_velocity_z  1 
rotation. 

free_goal_velocity    false 

check_robot_is_moving_to_g Allow  checking  if  the  robot  is  moving 


 
oal  during the action. 

differential_robot  Set to ​false​ to allow omni movements.  true 

robot_moving_to_goal_avera The  goal  is  aborted  if  the  robot  not 


3.0 
ging_time  moving during this time. 

Period  used  to  check  if  the  robot  is 


robot_moving_to_goal_delay  moving.  Only  used  if  3.0 
check_robot_is_moving_to_goal​ is ​true​. 

minimum_relative_linear_vel Minimum  linear  velocity  to  consider  the 


ocity_between_robot_and_go robot  as  not  moving.  Only  used  if  0.005 
al  check_robot_is_moving_to_goal​ is ​true​. 

minimum_relative_angular_v Minimum  angular  velocity  to  consider  the 


elocity_between_robot_and_g robot  as  not  moving.  Only  used  if  0.02 
oal  check_robot_is_moving_to_goal​ is ​true​. 

Maximum  distance  in  X accepted to finish 


goal_threshold_x  0.02 
the movement successfully. 

47 
User Guide Manual - V.1.1 
RB-1 
 
Maximum  distance  in  Y accepted to finish 
goal_threshold_y  0.01 
the movement successfully. 

Maximum  angle  in  rads accepted to finish 


goal_threshold_theta  0.01 
the movement successfully. 
 
The action can be run via the actionlib client: 

rosrun actionlib axclient.py /rb1/move 


 

 
Figure 28. Move axclient 
 
 

48 
User Guide Manual - V.1.1 
RB-1 
 
5.10.3. Docker 
 
This  component  is  intended  to  perform  basic  movements  to  reach  a  target.  It  allows  RB1  to 
approach  an  identified  ​frame/target​,  normally  for  docking  purposes.  Messages  related  to  the 
Dock​ action are defined in the D
​ ock.action​ file of the r​ obotnik_navigation_msgs​ package: 
 
# goal
string​ ​dock_frame
string​ ​robot_dock_frame
geometry_msgs/Pose2D​ ​dock_offset
geometry_msgs/Twist​ ​maximum_velocity
---
# result
bool​ ​success
---
# feedback
geometry_msgs/Pose2D​ ​remaining
geometry_msgs/Twist​ ​current_velocity 
 
The  configurable  parameters  are  located  in  the  ​rb1_base_docking.launch  file  in  the 
rb1_base_navigation​ package. 
 
Parameter  Description  Default value 

Robot  frame  to  perform  the  relative 


robot_base_frame  rb1_base_footprint 
docking. 

Fixed  reference  to  perform  the  relative 


fixed_frame  odom 
docking. 

maximum_linear_velocity_x  Maximum linear velocity allowed in x.  0.2 

maximum_linear_velocity_y  Maximum linear velocity allowed in y.   0.2 

maximum_angular_velocity_z  Maximum angular velocity.  0.2 

threshold_linear_velocity_x    0.001 

threshold_linear_velocity_y    0.001 

threshold_angular_velocity_z    0.001 

49 
User Guide Manual - V.1.1 
RB-1 
 
Linear  x  velocity  gain  to  perform  the 
gain_linear_velocity_x  1 
docking. 

Linear  y  velocity  gain  to  perform  the 


gain_linear_velocity_y  1 
docking. 

Angular  velocity  gain  to  perform  the 


gain_angular_velocity_z  1 
docking. 

Maximum  distance  in  x  to  accept  a 


initial_maximum_distance_x  goal.  It only works if ​check_initial_limits  1 
is set to true. 

Minimum  distance  in  x  to  accept  a 


initial_minimum_distance_x  goal.  It only works if ​check_initial_limits  0.5 
is set to true. 

Maximum  distance  in  y  to  accept  a 


initial_maximum_distance_y  goal.  It only works if ​check_initial_limits  0 
is set to true. 

Minimum  distance  in  y  to  accept  a 


initial_minimum_distance_y  goal.  It only works if ​check_initial_limits  0 
is set to true. 

Maximum  arc  between  the  orientation 


of  robot_base_frame  and  the  target  to 
initial_maximum_arc  0.52 
accept  a  goal.  It  only  works  if 
check_initial_limits​ is set to true. 

Maximum  difference  between  the 


orientation  of  robot_base_frame  and 
initial_maximum_yaw  the  target  to  accept  a  goal.  It  only  0.52 
works  if  ​check_initial_limits  is  set  to 
true. 

check_initial_limits  Allow checking initial limits.  true 

If  this  option  is  activated  (true)  when 


free_goal_velocity  the  goal  is  surpassed,  the  action  is  false 
finished.  

check_robot_is_moving_to_g Allow  checking  if  the  robot  is  moving 


false 
oal  during the action. 

50 
User Guide Manual - V.1.1 
RB-1 
 
Allow  publishing  docking  debug 
publish_debug_frames  false 
frames (available only in PurePursuit) 

robot_moving_to_goal_avera The  goal  is  aborted  if  the  robot  not 


3.0 
ging_time  moving during this time. 

Period  used  to  check  if  the  robot  is 


robot_moving_to_goal_delay  moving.  Only  used  if  3.0 
check_robot_is_moving_to_goal​ is ​true​. 

minimum_relative_linear_vel Minimum linear velocity to consider the 
ocity_between_robot_and_go robot  as  not  moving.  Only  used  if  0.005 
al  check_robot_is_moving_to_goal​ is ​true​. 

minimum_relative_angular_v Minimum  angular  velocity  to  consider 


elocity_between_robot_and_g the  robot  as  not  moving.  Only  used  if  0.02 
oal  check_robot_is_moving_to_goal​ is ​true​. 

Maximum  distance  in  X  accepted  to 


goal_threshold_x  0.02 
finish the docking successfully. 

Maximum  distance  in  Y  accepted  to 


goal_threshold_y  0.01 
finish the docking successfully. 

Maximum  angle  in  rads  accepted  to 


goal_threshold_theta  0.01 
finish the docking successfully. 

Maximum time to set the action as 


tf_timeout  0.01 
aborted if the tf is too old. 
 
In  the  RB1  there  are  different  instances  of  the  docker  node  (qr_docker,  laser_reflectors_docker 
and  docker).  One  is  prepared  to  make  docking  to  the  QR  code,  another  one  for  laser  markers 
and the third one is a standard one.  
In  order  to  launch  a  docking action any kind of marker or an arbitrary frame open a terminal and 
execute ( where ​docker​ can be substituted by any of the instances ): 
 
rosrun actionlib axclient.py /rb1/docker 
 
A  window  will  appear  where  it  is  needed  to  fill  in  the  name  of  the  frame  where  the  robot  is 
supposed to go and the frame fixed to the robot that must be approached to the goal. 
 
On  the  RB1,  the  best  way  to  make  a  docking  is  using  the  dock_frame 
“rb1_docking_station_laser_contact_for_base_frame”  and  the  robot_dock_frame 
“rb1_base_footprint”. 

51 
User Guide Manual - V.1.1 
RB-1 
 

 
Figure 29. Docker axclient 
 
 
 
 
 
 
 
 
 

52 
User Guide Manual - V.1.1 
RB-1 
 

5.11. Torso and Head  


 
This  component  is  intended  to  perform basic movements to position the camera and the height 
of  the  torso.  It  allows  RB1  to  view  on  different  orientations  without  moving  itself,  and  reach 
objectives with the arm at different heights. 
 
 

  This type of movement does not avoid obstacles. Only has a limitation in the degrees of freedom. 
 
First  of  all,  if  the  torso  is  not  at  home  position  (the  lowest  position),  you  need  to  call  the 
set_home service ( + ) with an empty message. 
 
The  topic  to move the dynamixels of the torso and head is /rb1/torso_controller/joint_trajectory, 
and  the  related  message  is  defined  in  the  ​JointTrajectory.msg  file  of  the  ​trajectory_msgs 
package: 
 
geometry_msgs/Pose2D​ ​remaining
geometry_msgs/Twist​ ​current_velocity
std_msgs/Header header
uint32 seq
time stamp
string frame_id
# list with joint names
string[] joint_names
# list with lists of positions (if only one position set, the dynamixel
will go to that position)
trajectory_msgs/JointTrajectoryPoint[] points
float64[] positions
float64[] velocities
float64[] accelerations
float64[] effort
duration time_from_start
 
The  configurable  parameters  are  located  in  the  ​dynamixel_controllers.yaml  file  in  the  config 
folder of ​rb1_bringup​ package, but the modification of the parameters is not recommended. 
 
5.11.1 Torso and head joints 
 
The available joints are: 

53 
User Guide Manual - V.1.1 
RB-1 
 
● torso_slider_joint​:  joint  of  the  torso.  His  position  is  set  in  meters.  In  the  RB1,  the  min 
limit is at 0.0 m and the max limit is at 0.32 m. 
● head_pan_joint​:  joint  of  the  head  related  to  the  horizontal  movement.  In  the  RB1,  the 
range is from -1.6 to 1.6 rad. 
● head_tilt_joint​:  joint of the head related to the vertical movement. In the RB1, the range is 
from -1.6 to 1.0 rad. 
 

5.12. Arm  
 
  This  component  is  intended  to  perform  basic  movements  to  position  the Kinova arm. It allows 
RB1 to take objects and interact with its surroundings. 
 
 

  This type of movement does not avoid obstacles. It is a collaborative arm, but please be careful. 
 
The  topic  to  move  the  arm  is  /rb1/j2s7s200_driver/in/joint_velocity,  and the related message is 
defined in the ​JointVelocity.msg​ file of the k​ inova_msgs​ package: 
 
# all arm joints to set the velocity of each one in radians per second
float32 joint1
float32 joint2
float32 joint3
float32 joint4
float32 joint5
float32 joint6
float32 joint7
 
The  configurable  parameters  are  located  in  the  ​dynamixel_controllers.yaml  file  in  the  config 
folder of ​rb1_bringup​ package, but the modification of the parameters is not recommended. 
 

   

54 
User Guide Manual - V.1.1 
RB-1 
 

6. Basic functionality 
 
This  section  shows  some  functionalities  of  the  robot  such  as  teleoperation  using  the  remote 
controller, as well as the visualization of the status of the motors. 
 

6.1. Robot controller 


 
6.1.1. ROS control 
 
RobotnikBaseHW  registers  a  collection  of  HardwareInterface  joints  for  all  motors  to  work  with 
the  ​controller  manager​.  To  learn  more  about  ROS  Control  you  can  visit  the  following  ​ROS  Wiki 
page​. 
 

 
Figure 30. ROS Control schema 
 
 
 
 
 
 
 

55 
User Guide Manual - V.1.1 
RB-1 
 
6.1.2. Base hardware 
 
Robotnik Base Hardware provides an interface between ROS Control and the real drivers. 
 

6.1.2.1. Status 
 
The  node  robotnik_base_hw  publishes  information in topics about the general state of the robot 
related to the motors and the battery. 

6.1.2.1.1. Drives status 


 
Information  about  the  motor  drives  can  be  obtained  through  the  topic  ​status  of  the 
robotnik_base_hw​ node. 
 
rostopic ​echo​ /rb1/robotnik_base_hw/status 
 
The messages published in that topic is structured as follows: 
 
string​ ​state
string​ ​status
string​ ​communicationstatus
string​ ​statusword
string​ ​driveflags
string[]​ ​activestatusword
string[]​ ​activedriveflags
int32​ ​digitaloutputs
int32​ ​digitalinputs
float32​ ​averagecurrent
float32[]​ ​analoginputs 
 
Output example 
 
name: [rb1_left_wheel_joint, rb1_right_wheel_joint]
can_id: [1, 2, 3, 4]
motor_status:
-
state: ​"READY"
status: ​"READY"

56 
User Guide Manual - V.1.1 
RB-1 
 
communicationstatus: ​"OPERATIONAL"
statusword: ​"0001010001100000"
driveflags:
"00100000000010000000000000010000001000000110000000000000000000100011"
activestatusword: [SW_FAULT, SW_QUICK_STOP, UNKNOWN,
SW_TARGET_REACHED]
activedriveflags: [SHUNT_ENABLED, UNDER_VOLTAGE, COMMANDED_DISABLE,
USER_UNDER_VOLTAGE, ZERO_VELOCITY,
AT_COMMAND, USER_QUICKSTOP, UNKNOWN, UNKNOWN]
digitaloutputs: 0
digitalinputs: 31
averagecurrent: 0.0
analoginputs: []
... 
 

6.1.2.1.2. Battery 
 
Information  about  the  battery  can  be  obtained  through  the  topic  ​battery/data  ​of  the 
robotnik_base_hw ​node. 
 
rostopic ​echo​ /rb1/robotnik_base_hw/battery/data 
 
The message published in that topic is structured as follows: 
 
float32​ ​voltage # in volts
float32​ ​level # in %
uint32​ ​time_remaining # in minutes
uint32​ ​time_charging​ ​# in minutes
bool​ ​is_charging​ ​# true when connected 
 
Output example: 
 
voltage: 51.8464698792
level: 32.0
time_remaining: 197
time_charging: 0
is_charging: False

57 
User Guide Manual - V.1.1 
RB-1 
 
6.1.2.1.3. Docking status 
 
Information  about  the  docking  contact  status  can  be  obtained  through  the  topic 
battery/docking_status o
​ f the ​robotnik_base_hw n
​ ode. 
 
rostopic ​echo​ /rb1/robotnik_base_hw/battery/docking_status 
 
The message published in that topic is structured as follows: 
 
# Modes of operation:
# no docking station contacts
string​ ​MODE_DISABLED=disabled
# Unattended relay detection & activation with no inputs/outputs feedback.
Done by the hw
string​ ​MODE_AUTO_HW=automatic_hw
# Unattended relay detection & activation with inputs/outputs feedback.
Done by the sw. It can be forced as it was in manual_sw mode
string​ ​MODE_AUTO_SW=automatic_sw
# Unattended relay detection & and manual activation of the charging relay
string​ ​MODE_MANUAL_SW=manual_sw

string​ ​operation_mode

float32​ ​battery_current # current flow in Amperes


bool​ ​contact_relay_status # shows if there's contact with the charger.
True if there’s contact between the robot and docking station
bool​ ​charger_relay_status​ ​# shows if the relay for the charge is active
or not. True if the charger relay is active and the battery charge is
enabled through the contacts 
 
 
 
 
 
 
 
 
 
 

58 
User Guide Manual - V.1.1 
RB-1 
 
 
 
 
Output example: 
 
header:
seq: 17463
stamp:
secs: 1567437248
nsecs: 964432933
frame_id: ''
status:
operation_mode: "automatic_sw"
battery_current: 3.1135559082
contact_relay_status: False
charger_relay_status: False
 

6.1.2.2. Operations 
 
The base_hw node has several services available 
 
Set Charger Relay 
 
Switches on/off the charger relay manually. 
 
rosservice call /rb1/robotnik_base_hw/set_charger_relay "data: false"
success: True
message: "ok"
 
Reset hw 
 
Stops the communication with the motors and start it again. 
 
rosservice call /rb1/robotnik_base_hw/reset_hw ​"{}" 
 
 
Send to home 
 
Triggers all motors homing (only for motors in control position) 

59 
User Guide Manual - V.1.1 
RB-1 
 
 
rosservice call /rb1/robotnik_base_hw/send_to_home ​"{}" 
 
Set digital output 
 
Set motor digital output 
 
rosservice call /rb1/robotnik_base_hw/set_digital_output "output: 0
value: false"
 
 
6.1.3. Kinematics controller 
 
Descripción del controller 

6.1.3.1. Status 
 
The robot controller has some topics that show information about the status of the robot. 
 
To  see  if  the  controller  is  enabled  you  can  consult  the  topic  ​enable​.  This  topic  only  shows  a 
boolean  value.  In  some  situations  the  controller  is  disabled,  for  example  when  auto-calibration 
is performed. 
 
rostopic ​echo​ /rb1/robotnik_base_control/enabled 
 
Doing ​echo​ of the i​ n_motion​ topic you can check if the robot is moving: 
 
rostopic ​echo​ /rb1/robotnik_base_control/in_motion 
 
The  odometry  calculation  is  also  published  by the robot controller. This topic uses the standard 
Odometry​ msg: 
 
rostopic ​echo​ /rb1/robotnik_base_control/odom 

6.1.3.2. Operations 
 
The robot controller allows you to enable or disable robot control through a service: 
 

60 
User Guide Manual - V.1.1 
RB-1 
 
rosservice call /rb1/robotnik_base_control/​enable​ ​"value: false" 
 
When the robot has control disabled, it will not be able to move using velocity commands. 

6.2. Command the base 


 
6.2.1. Twist mux 
 
This  node  provides  a  multiplexer  for  Twist  messages.  It  takes  N  input  twist  topics  and outputs 
the  messages  from  a  single  one.  For  selecting  the  topic  they  are  prioritized  based  on  their 
priority,  the  message  timeout  and  M  input  lock  topics  that  can  inhibit one input twist topic. The 
RB1 twist_mux configuration is illustrated in the diagram below: 
  

 
 
Figure 31. Twist Mux schema  
 
At  the  end,  any  speed  command  goes  through  the  multiplexer  and  is  republished  in 
/rb1/robotnik_base_control/cmd_vel​,  which  is  the  topic  from  that  the  robot  controller  reads  the 
speed  commands.  The  configuration  file  of  the  twist_mux  is  located  in  the  rb1_base_control 
package. 
 
6.2.2. Gamepad 
 
When  the  pad  is  linked  to  the  robot's  PC  (by pressing the PS button when using PS4 controller), 
the  data  transmitted  by  the  remote  control  can  be  read  in  the  Ubuntu  system  as  an  input.  To 
check the correct reading of data: 
 
jstest /dev/input/jsX 
 
 

  X can be a number from 0 to 9. 


 

61 
User Guide Manual - V.1.1 
RB-1 
 
Depending  on  the  number  of  input  devices  connected  to  the  robot,  the number associated with 
the  controller  may  change.  To  avoid  trying  to  read  from  a  device  other  than  the  remote  pad,  a 
udev  rule  has  been  created  that  allows  the controller to be identified as an input device with the 
name  ​js_base​. Therefore, with the remote controller connected, the information can also be read 
running: 
 
jstest /dev/input/js_base 
 

6.2.2.1. Configuration 
 
The  control  is  provided  with  a  default  configuration  that  works  correctly.  The  configuration  is 
shown earlier in this manual. (​2.3. Pad Teleoperation​) 
 
In  the  rb1_pad  package,  in  the  config  folder,  you  will  find  the  configuration  files  for  the 
commands.  They  associate  the  number  of  axes  and  buttons  (of  the  topic  ​/rb1/joy​)  to  the 
desired actions. 
 
 

If  you  want  to  make  any  changes,  it  is  recommended  to  back  up  the  default  remote  control  configuration 
  files. Changing this setting does not ensure proper system operation. 

6.2.2.2. Battery charge 


 
To  charge  the  pad,  connect  it  using  the supplied micro USB cable. The remote controller can be 
connected to the robot itself (rear panel) or other power system. 

6.2.2.3. How to use it 


 
All the information published by the remote control (in ​/dev/input/js_base​) is published in ROS in 
the ​joy​ topic: 
 
rostopic ​echo​ /rb1/joy 
 
The  rb1_pad  node  takes  the  information  published  by  the  remote  pad  and  publishes  speed 
commands. This commands can be read in ​pad_teleop/cmd_vel​ topic: 
 
rostopic ​echo​ /rb1/pad_teleop/cmd_vel 
 

62 
User Guide Manual - V.1.1 
RB-1 
 
To send speed commands to the robot, press the deadman button and move the left axis to give 
linear speed and the right axis to give angular speed. 
 

6.3. Torso and Head 


This  section  describes  the  basic  operations  related  with  the  motors  that  control  the  linear  axis 
of the torso as well as the rotary motors of the head. 
 
 

Extreme  precautions  when  the  torso  is  homing  or  moving.  Putting  hands  or  fingers 
  on the linear axis is dangerous. 
 
 
 
6.3.1 Homing the torso 
 
 

This operation is m
​ andatory​ to start working with the torso and pant-tilt head. 
 
 
rosservice call /rb1/torso_controllers/set_home "{}"  
 
 
6.3.2 Set torso position 
 
 
rosservice call /rb1/torso_interface/set_elevator "value: 0.0"  
 
The range of values is between 0.0 and 0.32 m 
 
 
 
6.3.3 Set head position 
 
 
rosservice call /rb1/torso_interface/set_head_pan "value: 0"  
 
 

63 
User Guide Manual - V.1.1 
RB-1 
 
rosservice call /rb1/torso_interface/set_head_tilt "value: 0"  
 
 

6.4. RVIZ 
 
RVIZ is a 3D visualization tool for ROS. To launch it: 
 
rviz 
 

 
Figure 32. RVIZ 
 
 
RVIZ  allows  to  visualize  the  data  provided  by  the  sensors  and  to  command  the  robot  using 
plugins. For more information about RVIZ please check R ​ OS Wiki​. 
 
You  can  load  the  RViz  configuration  for  the  robot  on  your  PC  importing  the  file  on 
~/catkin_ws/src/rb1_sim/rb1_gazebo/rviz/rb1_a.rviz 
 
 

64 
User Guide Manual - V.1.1 
RB-1 
 

7. Advanced functionality 
 
This  section  will  show  some  advanced  functionalities  of  the  robot,  such  as  tele-operation  and 
mapping  through the user interface, arm movement through ROS or using the UR interface itself, 
etc. 
 

7.1. Map Nav Manager 


 
The  map_nav_manager  is  an  internal  web  application  running  locally  on  the  robot.  You  can 
access  this  website  through  the  browser  using  the  url  http://robot_ip:port,  normally 
192.168.0.200:9001. 
 
This  application  is  a  tool  to  monitor  the  robot  status,  control  and  perform  localization  and 
navigation actions in a simple way. 

Figure 33. Map nav manager interface (I) 


 
1. 3D Map Visualization​: ​In this section you can see the position of the robot with respect to
the map. The points of interest marker (POI Manager) can be rotated or moved through
the map by clicking on it and moving it. If you click on the POI Manager, a contextual
menu appears with some options that lets move the robot, localize it, create points of
interest, etc. 
 

65 
User Guide Manual - V.1.1 
RB-1 
 
2. Processes  Control  Panel​:  Control panel to start/stop navigation, localization or mapping 
procedure.  
2.1. Mapping​:  ​If  the  mapping  is  activated,  in  the  panel  of  3D  Map  Visualization  the 
robot  will  start  to  build  the  map  by  using the defined SLAM algorithm (gmapping 
by  default).  Once  you  have the desired map, you can save it. To do this, you must 
enter  the  name  of  the  map  and  press  the  save  button  without  stopping  the 
mapping.  You  can  set  this  map  as  the  default  by  checking  the  checkbox  before 
saving. 
 
 

  Mapping is not compatible with Map Server nor Localization modules. 

2.2. Map  Server​:  After  saving  a  map,  it is possible and necessary to load it in order to 


localize  the  robot.  To  start  the  map  server,  press  the  start  button  and  it  will 
launch  the  map  specified  on  the  config  file 
rb1_bringup/config/map_nav_manager.yaml (param map_server/default_map).  
 

  Map Server is not compatible with Mapping module. 

2.3. Localization​: Start or stop the localization module. Once started it is necessary to 
initialize the robot position by using the web interactive marker. 
 

  Localization is not compatible with Mapping module. Localization requires Map Server running 

2.4. Navigation​:  You  can  send  the  robot  to  any  point  of  the  map  using  the  POI 
Manager or the POI markers 
 

  Navigation requires Mapping or Localization+Map Server modules running. 

You  can  make  the  Map  Server,  Localization  and  Navigation  start  automatically  with  the 
complete launch of map_nav_manager by checking the Autorun checkbox. 
 
 
3. Robot Move Control​: A
​ llows you to teleoperate the robot through the web. 
 
4. ​ isplays debug information related to the ​Processes control panel.​
Output Monitor​: D

66 
User Guide Manual - V.1.1 
RB-1 
 

Figure 34. Map nav manager interface (II)

5. Motor  Status​:  ​Shows the status of the motors. If everything is working the right way, the
indicators should be green. If something goes wrong or the emergency stop is pressed,
the indicators will be red. By pressing the Flags button, all the motor flags can be
displayed. Active flags are highlighted 
 
6. Status​:  ​It shows general information about the status of the robot, battery, temperature,
etc. 
 
7. Odometry​:  ​Displays information about the current position and orientation of the robot.
The Reset Odometry button lets you restart the pose of the robot.

8. IMU: ​Displays temperature and values from the IMU.

9. Global Pose:​ Displays the global pose (normally from amcl).


 
10. Camera Monitor​: Shows live image from the PTZ camera and allow the control of them 
 
 
 
 

67 
User Guide Manual - V.1.1 
RB-1 
 

7.2. GoTo 
You  can  send  positions  with  respect  to  the  map  for  the  robot  to  navigate  to  them.  There  are 
several ways to do this: 
 
● Actionlib​: 
 
rosrun actionlib axclient.py /rb1/move_base 
 

 
Figure 35. Move base axclient 
 
● Command line​:  
 
rostopic pub /rb1/move_base/goal TAB TAB 
 

68 
User Guide Manual - V.1.1 
RB-1 
 
● Map nav manager​: As explained in the previous section 
 
The  behaviour  of  the  robot  when  navigating  depends  on  the  parameters  explained  in  ​5.10.1. 
Move_base 
 

7.3. Battery docking 


 
The  RB1  is able to dock to the charger thanks to the relative movements described earlier in this 
manual. (​5.10.3. Docker​) . 
 
A  laser  reflector  or  a  QR  marker,  as  shown  below,  is  normally  used  to  identify  the  charger 
station. 
 

 
Figure 36. Docking QR 
 
 
To  dock  the  charger  station,  the  ​dock_frame  of  the  action  should  be 
rb1_docking_station_contact  and  the  ​robot_dock_frame  should  be 
rb1_base_docking_contact_link​.
 
 
 
 
 
 
 
 
 
 

69 
User Guide Manual - V.1.1 
RB-1 
 

7.4. Kinova arm movement 


 
To use the arm with ROS there are two possibilities: 
 
● Control the Kinova joints with ROS, read their position and send I/O signals to the arm 
● Control the Kinova arm with MoveIt 
 
You can also open rviz to visualize the robot position. 
 
7.4.1 Arm ROS control 
 

7.4.1.1 Joint Control Velocity 


  
You  can  send  signals  to  the  Kinova  arm  by  publishing  on  the  following  topic,  explained  in 
section ​5.12. Arm​. 
 
/rb1/j2s7s200_driver/in/joint_velocity
 

7.4.1.2 Force control  


 
This  lets  the  user  control  the  robot  manually  (by  hand).  The  admittance  force  control  can  be 
activated  by  the  command:  rosservice  call  /'${kinova_robotType}_driver'/in/start_force_control 
and  disabled  by  rosservice  call  /'${kinova_robotType}_driver'/in/stop_force_control.  The  user 
can  move  the  robot  by  applying  force/torque  to  the  end-effector/joints.  When  there  is  a 
Cartesian/joint  position  command,  the  result  motion  will  be  a  combination  of  both  force  and 
position commands. 
 
rosservice call /rb1/j2s7s200_driver/in/start_force_control "{}"
 
rosservice call /rb1/j2s7s200_driver/in/stop_force_control "{}"
 
 
7.4.2 Arm MoveIt control 
 
To control the Kinova arm with the MoveIt plugin for RViz, execute in a terminal: 

70 
User Guide Manual - V.1.1 
RB-1 
 
 

ROS_NAMESPACE=rb1 roslaunch rb1_j2s7s200_moveit_config demo.launch

 
 

   

71 
User Guide Manual - V.1.1 
RB-1 
 

8. Technical specifications 

72 
User Guide Manual - V.1.1 
RB-1 
 

73   
User Guide Manual - V.1.1 
RB-1 
 

9. Maintenance 
 
Before starting any maintenance task, switch off the power to manipulate the wheels or any
other mechanical part, or if he has to access the electrical cabinets.

The following table summarizes all the elements that need maintenance and the periodicity of
this maintenance.

Often Every 6 month Observations


Screws Check they are
not loosen.
Tires Visual control of the Replace when
wear rate. needed
Outer wires Visual control of the If wear appears,
wear rate. protect them with
Shrink tube,
Vulcan tape or
similar.
Bearings Control state. If any damage
appears, it is
recommended its
replacement by a
new one.
Battery Control Check battery Recharge ASAP if
Batteries autonomy fully discharged
Voltage, don’t
let the batteries
get fully
discharged
PC Interior Cleaning.
Visual control of the
correct work of the
fan (if installed).

If  you  have  any  doubt  about  the  robot  maintenance,  contact  with  Robotnik  support department 
and  request  it.  Below,  it  is  explained  more  information  about  the  maintenance  of  robot 
components. 
 

74 
User Guide Manual - V.1.1 
RB-1 
 

9.1. Motor drivers 


The  drivers  are  programmed  at  Robotnik  with  specific  settings  for  each  motor.  The  serial 
identifier  is  the  default  one  (63),  but  each  driver  has  its  own  CAN  bus  identifier  (1,  2).  DO  NOT 
change them from one motor to another.  
 
The  computer  sends  CAN  messages  to  move  the robot, and they are different from the left side 
(1) and right side (2). Driver 1 is the only one with the Can bus resistor installed.   

75 
User Guide Manual - V.1.1 
RB-1 
 

10. Recycling of the robot 


 
Robotnik  Automation SL is committed to providing quality products in an environmentally sound 
manner.  For  this  reason,  Robotnik  Automation  SL  continuously  improves  the  design  processes 
of its products to minimize the negative impact in their useful life.  
 
Design for recycling has been incorporated into this product:  
 
● The number of materials has been kept to a minimum while ensuring proper functionality 
and reliability. 
● Dissimilar materials have been designed to separate easily. 
● Fasteners  and  other  connections  are  easy  to locate, access, and remove using common 
tools. 
● High-priority  parts  have  been  designed  so that they can be accessed quickly for efficient 
disassembly and repair. 
 
The  packaging  materials  for  this  device  have  been  selected  to provide maximum protection for 
the  least  cost  possible,  while  attempting  to  minimize  environmental  impact  and  facilitate 
recycling. 
 

European  Union​:  under  the  directive  2002/96  /  EC  of  the 


European  Union  regarding  waste  and  /  or  electronic  equipment, 
with  a  rigorous  date  since  August  13,  2005,  products  classified 
as  "electrical  and  electronic  equipment"  cannot  be  deposited  in 
usual  containers  of  your  municipality,  equipment manufacturers 
electronic,  are  required  to  take care of these products at the end 
of  his  life  period.  Use  the  public  collection  system  to  return, 
  recycle or treat them in accordance with local regulations. 

 
 
 
 
 
   

76 
User Guide Manual - V.1.1 
RB-1 
 

11. Customer service and technical support 


 
If  you  have  any  doubt  or  problem  with your robot, please contact with us by sending an email to 
[email protected]​, indicating the serial number of your robot.  
 
We  are  constantly  improving  and  upgrading  our  products  and  services.  Any  feedback  from 
users is welcome.  
 
NOTE: Our language for support communication is either in English or Spanish. 
 
  

77 

You might also like