In this section we provide instructions on launching individual components used in the baseline solution.
Before proceeding, you should follow instructions in this section to make sure the server is running and the client has been created.
-
Launch a ROS node for navigation
scripts/shell.sh roslaunch carto_navigation navigation.launch
-
Specify the navigation target by
rviz
:
-
Launch a node for detection and grasping:
scripts/shell.sh roslaunch rmus_solution manipulate.launch
-
Move the EP with keyboard to the location where digits on the check station are visible.
-
Detect the digits on the check station by calling a ROS service:
MODE=9 docker exec -it client /opt/ros/noetic/env.sh /opt/workspace/devel_isolated/env.sh /opt/ep_ws/devel/env.sh rosservice call /image_processor_switch_mode "mode: ${MODE}"
Note that, the command can be automatically completed by pressing
Tab
.After calling the service, the digits on the check station should be detected and visualized on the
image_view
output:Reference for the service
/image_processor_switch_mode
:mode
:Value Specification 0
Halt (Default) 1
~5
Detect digits 1
~5
6
Detect B
7
Detect O
8
Detect X
9
Detect three digits on check station -
Stop the service by calling
docker exec -it client /opt/ros/noetic/env.sh /opt/workspace/devel_isolated/env.sh /opt/ep_ws/devel/env.sh rosservice call /image_processor_switch_mode "mode: 0"
-
Launch a node for detection and grasping:
scripts/shell.sh roslaunch rmus_solution manipulate.launch
-
Move the EP with keyboard towards the front face of a mineral
-
Invoke vision service to locate the mineral
docker exec -it client /opt/ros/noetic/env.sh /opt/workspace/devel_isolated/env.sh /opt/ep_ws/devel/env.sh rosservice call /image_processor_switch_mode "mode: 5"
The parameter
3
corresponds to the digit 3 on the mineral to grasp.After calling the service, the digits on the mineral should be detected and visualized on the
image_view
output: -
Grasp the mineral
MODE=1 docker exec -it client /opt/ros/noetic/env.sh /opt/workspace/devel_isolated/env.sh /opt/ep_ws/devel/env.sh rosservice call /let_manipulater_work "mode: ${MODE} call: ''"
Note that, the command can be automatically completed by pressing
Tab
.Reference for the service
/let_manipulater_work
:mode
:Value Specification 0
Robot arm reset 1
Grasp the mineral in front of the EP 2
Place the mineral at hand into the check station call
: Usused, default value is empty string. You can use this parameters in your method. -
Move the EP with keyboard to the front of the check station:
-
Find the target box to place the grasped mineral:
docker exec -it client /opt/ros/noetic/env.sh /opt/workspace/devel_isolated/env.sh /opt/ep_ws/devel/env.sh rosservice call /image_processor_switch_mode "mode: 7"
6
,7
,8
correspond toB
,O
,X
at the checking station -
Place the mineral in the box
docker exec -it client /opt/ros/noetic/env.sh /opt/workspace/devel_isolated/env.sh /opt/ep_ws/devel/env.sh rosservice call /let_manipulater_work "mode: 2 call: ''"
-
Stop the service
docker exec -it client /opt/ros/noetic/env.sh /opt/workspace/devel_isolated/env.sh /opt/ep_ws/devel/env.sh rosservice call /image_processor_switch_mode "mode: 0"