TurtleBot3 Home Service Challenge
NOTE:
- This instructions were tested on
Ubuntu 20.04
andROS1 Noetic Ninjemys
. - For more informationn, see OpenMANIPULATOR e-Manual and [ROS 1] Turtlebot3 Manipulation
- Home Service Challenge noetic package is mainly tested under the Gazebo simulation.
- The actual robot will also be tested and updated.
Home Service Challenge Stadium and Objects
Getting Started
NOTE: Be sure to complete the following instructions before installing Home Service Challenge packages in the pc.
Prerequisites
Remote PC
- ROS 1 Noetic installed Laptop or desktop PC.
- This instruction is based on Gazebo simulation.
Remote PC Setup
- [Remote PC] Install Home Service Challenge packages.
$ cd ~/catkin_ws/src/ $ git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_home_service_challenge.git $ git clone -b noetic-devel https://github.com/machinekoder/ar_track_alvar $ cd ~/catkin_ws && catkin_make
- [Remote PC] Load the TurtleBot3 Waffle (or Waffle Pi) with OpenMANIPULATOR on RViz.
$ export TURTLEBOT3_MODEL=${TB3_MODEL} $ roslaunch turtlebot3_manipulation_description turtlebot3_manipulation_view.launch use_gui:=true
NOTE: Specify
${TB3_MODEL}
:waffle
,waffle_pi
before excuting the command. Set the permanent export setting by following Export TURTLEBOT3_MODEL instruction.Rviz View. Specify ${TB3_MODEL} : waffle_pi
Camera Calibration
NOTE: This chapter is for actual robots only. Gazebo does not proceed.
SLAM
NOTE: This chapter is for actual robots only. Gazebo does not proceed.
Missions
Run a Demo and Manager Pacakge
- [Remote PC] Run the Gazebo Simulation.
$ roslaunch turtlebot3_home_service_challenge_simulation competition.launch
- [Remote PC] Run a simulation demo for Gazebo.
$ roslaunch turtlebot3_home_service_challenge_tools turtlebot3_home_service_challenge_demo_simulation.launch
- [Remote PC] Run the manager package used to carry out Home Service Challenge’s mission.
$ roslaunch turtlebot3_home_service_challenge_manager manager.launch
Commands
[Remote PC] Use the following commands during Home Service Challenge.
- Ready : TurtleBot3 will prepare to start a mission.
$ rostopic pub -1 /tb3_hsc/command std_msgs/String ready_mission
- Start : TurtleBot3 will start a mission.
$ rostopic pub -1 /tb3_hsc/command std_msgs/String start_mission
- Stop : TurtleBot3 will stop running a mission.
$ rostopic pub -1 /tb3_hsc/command std_msgs/String stop_mission
- Restart : TurtleBot3 will restart a mission by a given scenario.
$ rostopic pub -1 /tb3_hsc/command std_msgs/String restart_mission:SCENARIO_NAME
NOTE: When using this command, be sure to include one of the senario name from a
scenario.yaml
file. For detailed information on the scenario, see Configuration description below at this section.
Operation Test
[Remote PC] Publish the following topics to test a navigation or manipulation feature.
- Navigation
$ rostopic pub -1 /tb3_hsc/command std_msgs/String nav_start
$ rostopic pub -1 /tb3_hsc/command std_msgs/String nav_ar_marker_0
$ rostopic pub -1 /tb3_hsc/command std_msgs/String nav_ar_marker_1
$ rostopic pub -1 /tb3_hsc/command std_msgs/String nav_ar_marker_2
$ rostopic pub -1 /tb3_hsc/command std_msgs/String nav_ar_marker_3
- Manipulation
$ rostopic pub -1 /tb3_hsc/command std_msgs/String arm_home
$ rostopic pub -1 /tb3_hsc/command std_msgs/String arm_joint
$ rostopic pub -1 /tb3_hsc/command std_msgs/String arm_task
$ rostopic pub -1 /tb3_hsc/command std_msgs/String open_gripper
$ rostopic pub -1 /tb3_hsc/command std_msgs/String close_gripper
Configuration
[Remote PC] Modify data in configuration files according to the given environment.
scenario.yaml
: This file contains a scenario’s data.- File Path : /turtlebot3_home_service_challenge_manager/script/scenario.yaml
- Script
SCENARIO_NAME: # start - scenario - finish task: TASK_NAME args: [0, 1, 2] timeout: 10 #sec, 0 : no time out next_scenario: find_object scenario_on_failure: standby retry_times: 0 #times, 0 : no retry
room.yaml
: This file contains data of the Home Service Challenge’s stadium.- File Path : /turtlebot3_home_service_challenge_manager/config/room.yaml
- Script
room_1: name: toilet object: marker: ar_marker_0 position: [0.25, 0, 0.15] target: marker: ar_marker_4 position: [0.25, 0, 0.15] x: [1.5, 0.6] y: [1.5, 0.2]
config.yaml
: This configuration file contains manager package’s data.- File Path : /turtlebot3_home_service_challenge_manager/config/config.yaml
Details about the Home Service Mission
The goal of the Home Service Challenge is to move four different objects from a living room to a specific place with given rules, and to return to the starting point.
Using the demo package, the process of moving objects in Home Service Challenge is as follows.
- Navigating to a target in the living room.
- Find a target, and reach it using a Navigation package.
- Approaching the target.
- For the approach to the target with precise, TurtleBot3 wheels are directly controlled by computing target’s location from AR marker. (Used Topic :
/tb3_hsc/cmd_vel
). To produce a reliable performance, Closed-loop and control system can be used for the specified number of times.
- For the approach to the target with precise, TurtleBot3 wheels are directly controlled by computing target’s location from AR marker. (Used Topic :
- Picking the target with OpenMANIPULATOR-X’s gripper.
- Pick the target object using the moveit package (Joint space control, Task space control and Gripper control)
MoveIt Diagram
- Leaving for the next room to place the object (Used Topic :
/tb3_hsc/cmd_vel
)- When moving back from the target, the wheels are directly controlled by the manager program using
/tb3_hsc/cmd_vel
topic.
- When moving back from the target, the wheels are directly controlled by the manager program using
- Navigating to the place where the object will be placed.
- Find a next target, and reach it using a Navigation package.
-
Approaching the target.
-
Placing the object using the gripper.
-
Returning to the starting point using the navigation package.
Simulation
Simulate TurtleBot3 with OpenMANIPULATOR-X in Gazebo.
- [Remote PC] Run Gazebo.
$ roslaunch turtlebot3_home_service_challenge_simulation competition.launch
- [Remote PC] Run a simulation demo for Gazebo.
$ roslaunch turtlebot3_home_service_challenge_tools turtlebot3_home_service_challenge_demo_simulation.launch
- [Remote PC] Run Home Service Manager.
$ roslaunch turtlebot3_home_service_challenge_manager manager.launch
- Use the Home Service Challenge commands, See Commands
NOTE: This feature is available for Kinetic and Noetic.