RB-1 User Guide Manual (V.1.1)
RB-1 User Guide Manual (V.1.1)
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
1
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
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
2
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
3
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.
Figure 1. RB-1 robot
4
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.
FORBIDDEN: a forbidden block
“Forbidden” description includes information about the situation and how to avoid it.
MANDATORY: a
mandatory block
5
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.
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.
6
User Guide Manual - V.1.1
RB-1
7
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.
8
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.
9
User Guide Manual - V.1.1
RB-1
2. Quickstart
2.1. Unpacking the robot
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
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.
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
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)
14
User Guide Manual - V.1.1
RB-1
Figure 12. RB-1 Base Wheels
15
User Guide Manual - V.1.1
RB-1
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
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.
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.
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
21
User Guide Manual - V.1.1
RB-1
Figure 19. RB1 Torso components
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
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.
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.
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.
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.
● 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.
● rly_816: This component is intended to read digital I/O to check the endstops of the
torso.
● 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
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
Router 192.168.0.1
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.
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.
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.:
36
User Guide Manual - V.1.1
RB-1
At this stage you can have a first look at the robot with
rqt
and
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.
37
User Guide Manual - V.1.1
RB-1
pixhawk Controls the imu used.
front_rgbd_camera/torso_rgbd_ca
Nodes responsible of the two rgbd cameras.
mera
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
38
User Guide Manual - V.1.1
RB-1
diameter_wheel Wheel diameter
Each driver has its own id that will be related
joint_can_id
to the joints of the wheels
If there is an offset in the initial position it
joint_home_offset
should be specified here
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
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
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
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
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.
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
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
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
44
User Guide Manual - V.1.1
RB-1
max_translational_accelerati
Maximum linear acceleration. 0.5
on
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):
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
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.
threshold_linear_velocity_x 0.001
threshold_linear_velocity_y 0.001
threshold_angular_velocity_z 0.001
free_goal_velocity false
47
User Guide Manual - V.1.1
RB-1
Maximum distance in Y accepted to finish
goal_threshold_y 0.01
the movement successfully.
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
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.
50
User Guide Manual - V.1.1
RB-1
Allow publishing docking debug
publish_debug_frames false
frames (available only in PurePursuit)
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.
51
User Guide Manual - V.1.1
RB-1
Figure 29. Docker axclient
52
User Guide Manual - V.1.1
RB-1
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.
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.
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
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.
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
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.
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.
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.
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.
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
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
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.
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
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
70
User Guide Manual - V.1.1
RB-1
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.
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
75
User Guide Manual - V.1.1
RB-1
76
User Guide Manual - V.1.1
RB-1
77