split remote PC/Burger instruction authored by Victor CHARPENAY's avatar Victor CHARPENAY
...@@ -19,6 +19,7 @@ The TurtleBot3 version adopts ROBOTIS smart actuator DYNAMIXEL for driving. Turt ...@@ -19,6 +19,7 @@ The TurtleBot3 version adopts ROBOTIS smart actuator DYNAMIXEL for driving. Turt
* [Gazebo with multi-turtlebot3s](#gazebo-with-multi-turtlebot3s) * [Gazebo with multi-turtlebot3s](#gazebo-with-multi-turtlebot3s)
* [configure gazebo launch file](#configure-gazebo-launch-file) * [configure gazebo launch file](#configure-gazebo-launch-file)
* [Control robot](#control-robot) * [Control robot](#control-robot)
* [TurtleBot3 Administration](#turtlebot3-administration)
# Working with the TurtleBot3 Burger # Working with the TurtleBot3 Burger
...@@ -45,8 +46,6 @@ The TurtleBot3 burger is the smallest turtlebot3 mobile robot. It is composed of ...@@ -45,8 +46,6 @@ The TurtleBot3 burger is the smallest turtlebot3 mobile robot. It is composed of
### Configuring ### Configuring
* Configuring the Remote PC
Add the following lines in the .bashrc of your Remote PC to define the necessary environment variables for runnning ROS: Add the following lines in the .bashrc of your Remote PC to define the necessary environment variables for runnning ROS:
```plaintext ```plaintext
...@@ -63,28 +62,6 @@ Reinitialize the environment of your Remote PC: ...@@ -63,28 +62,6 @@ Reinitialize the environment of your Remote PC:
Note: IP_OF_SERVER_RUNNING_ROSCORE can be equal to IP_OF_REMOTE_PC in case you run /roscore/ on the Remote PC. The ROS_MASTER_URI is necessary for connecting the ros node running on your Remote PC to the ros master node, i.e. the one running /roscore/. Note: IP_OF_SERVER_RUNNING_ROSCORE can be equal to IP_OF_REMOTE_PC in case you run /roscore/ on the Remote PC. The ROS_MASTER_URI is necessary for connecting the ros node running on your Remote PC to the ros master node, i.e. the one running /roscore/.
* Configuring the TurtleBot3 Burger
From the remote PC, connect to the Burger by ssh ([Our burger configuration](/Our-robots'specification)):
```plaintext
(Remote PC)> ssh pi@{IP_ADDRESS_OF_BURGER}
```
Add the following lines in the .bashrc of the Burger to define the necessary environment variables for runnning ROS:
```plaintext
export TURTLEBOT3_MODEL=burger
export ROS_MASTER_URI=http://IP_OF_SERVER_RUNNING_ROSCORE:11311
export ROS_HOSTNAME=IP_OF_BURGER
```
Reinitialize the environment of your Burger:
```plaintext
(Burger)> source ~/.bashrc
```
### Launching ROS ### Launching ROS
* Launching roscore * Launching roscore
...@@ -95,11 +72,9 @@ Reinitialize the environment of your Burger: ...@@ -95,11 +72,9 @@ Reinitialize the environment of your Burger:
* Starting a real robot burger * Starting a real robot burger
Define a specific namespace for each robot and initialize two parameters *multi_robot_name* and *set_lidar_frame_id* with the same namespace name ([Our burger configuration](/Our-robots'specification)): Define a specific namespace for each robot and initialize the *multi_robot_name* parameter with that namespace ([Our burger configuration](/Our-robots'specification)):
```plaintext ```plaintext
(Remote PC)>ssh pi@{IP_ADDRESS_OF_BURGER}
(Burger)>[ROS_NAMESPACE=myspace] roslaunch turtlebot3_bringup turtlebot3_robot.launch multi_robot_name:="myspace" set_lidar_frame_id:="myspace/base_scan"
(Remote PC)>[ROS_NAMESPACE=myspace] roslaunch turtlebot3_bringup turtlebot3_remote.launch multi_robot_name:=myspace (Remote PC)>[ROS_NAMESPACE=myspace] roslaunch turtlebot3_bringup turtlebot3_remote.launch multi_robot_name:=myspace
``` ```
...@@ -175,8 +150,6 @@ The waffle follows the same philosophy as the burger. The main difference is a b ...@@ -175,8 +150,6 @@ The waffle follows the same philosophy as the burger. The main difference is a b
### Configuring ### Configuring
* Configuring the Remote PC
Add the following lines in the .bashrc of your Remote PC to define the necessary environment variables for runnning ROS: Add the following lines in the .bashrc of your Remote PC to define the necessary environment variables for runnning ROS:
```plaintext ```plaintext
...@@ -193,28 +166,6 @@ Reinitialize the environment of your Remote PC: ...@@ -193,28 +166,6 @@ Reinitialize the environment of your Remote PC:
Note: IP_OF_SERVER_RUNNING_ROSCORE can be equal to IP_OF_REMOTE_PC in case you run *roscore* on the Remote PC. The ROS_MASTER_URI is necessary for connecting the ros node running on your Remote PC to the ros master node, i.e. the one running *roscore*. Note: IP_OF_SERVER_RUNNING_ROSCORE can be equal to IP_OF_REMOTE_PC in case you run *roscore* on the Remote PC. The ROS_MASTER_URI is necessary for connecting the ros node running on your Remote PC to the ros master node, i.e. the one running *roscore*.
* Configuring the TurtleBot3 Waffle
From the remote PC, connect to the Waffle by ssh:
```plaintext
(Remote PC)> ssh pi@{IP_ADDRESS_OF_WAFFLE}
```
Add the following lines in the .bashrc of the Waffle to define the necessary environment variables for runnning ROS:
```plaintext
export TURTLEBOT3_MODEL=waffle_pi
export ROS_MASTER_URI=http://IP_OF_SERVER_RUNNING_ROSCORE:11311
export ROS_HOSTNAME=IP_OF_WAFFLE
```
Reinitialize the environment of your Waffle:
```plaintext
(Waffle)> source ~/.bashrc
```
### Launching ROS ### Launching ROS
* Launching roscore * Launching roscore
...@@ -226,8 +177,6 @@ Reinitialize the environment of your Waffle: ...@@ -226,8 +177,6 @@ Reinitialize the environment of your Waffle:
* Starting a real robot Waffle * Starting a real robot Waffle
```plaintext ```plaintext
(Remote PC)>ssh pi@{IP_ADDRESS_OF_WAFFLE}
(Waffle)>[ROS_NAMESPACE=myspace] roslaunch turtlebot3_bringup turtlebot3_robot.launch multi_robot_name:="myspace" set_lidar_frame_id:="myspace/base_scan"
(Remote PC)>[ROS_NAMESPACE=myspace] roslaunch turtlebot3_bringup turtlebot3_remote.launch multi_robot_name:=myspace (Remote PC)>[ROS_NAMESPACE=myspace] roslaunch turtlebot3_bringup turtlebot3_remote.launch multi_robot_name:=myspace
``` ```
...@@ -278,7 +227,7 @@ TODO ...@@ -278,7 +227,7 @@ TODO
# Gazebo with multi-turtlebot3s # Gazebo with multi-turtlebot3s
Gazebo is a robotics simulation framework that allows several different robots to evolve in a predefined spatial environment. By example, it is possible to deploy several turtlebot3 burgers in a simulated environment of the 4th floor of Fayol building. Gazebo is a robotics simulation framework that allows several different robots to evolve in a predefined spatial environment. For example, it is possible to deploy several turtlebot3 burgers in a simulated environment of the 4th floor of Fayol building.
![](./images/gazebo-fayol.png) ![](./images/gazebo-fayol.png)
...@@ -399,3 +348,61 @@ In last, we configure the robot deployment using group syntax: ...@@ -399,3 +348,61 @@ In last, we configure the robot deployment using group syntax:
``` ```
![](./images/gazebo-rviz1.png) ![](./images/gazebo-rviz1.png)
# TurtleBot3 Administration
By default, TurtleBot3 Burger and Waffle robots get automatically configured at startup. The following instructions only apply in case of problem, e.g. if a robot's topics are not advertised properly.
* Configuring the TurtleBot3 Burger
From the remote PC, connect to the Burger by ssh ([Our burger configuration](/Our-robots'specification)):
```plaintext
(Remote PC)> ssh pi@{IP_ADDRESS_OF_BURGER}
```
Add the following lines in the .bashrc of the Burger to define the necessary environment variables for runnning ROS:
```plaintext
export TURTLEBOT3_MODEL=burger
export ROS_MASTER_URI=http://IP_OF_SERVER_RUNNING_ROSCORE:11311
export ROS_HOSTNAME=IP_OF_BURGER
```
Reinitialize the environment of your Burger:
```plaintext
(Burger)> source ~/.bashrc
```
Define a specific namespace for your robot and initialize two parameters *multi_robot_name* and *set_lidar_frame_id* with that namespace ([Our burger configuration](/Our-robots'specification)):
```plaintext
(Burger)>[ROS_NAMESPACE=myspace] roslaunch turtlebot3_bringup turtlebot3_robot.launch multi_robot_name:="myspace" set_lidar_frame_id:="myspace/base_scan"
```
* Configuring the TurtleBot3 Waffle
From the remote PC, connect to the Waffle by ssh:
```plaintext
(Remote PC)> ssh pi@{IP_ADDRESS_OF_WAFFLE}
```
Add the following lines in the .bashrc of the Waffle to define the necessary environment variables for runnning ROS:
```plaintext
export TURTLEBOT3_MODEL=waffle_pi
export ROS_MASTER_URI=http://IP_OF_SERVER_RUNNING_ROSCORE:11311
export ROS_HOSTNAME=IP_OF_WAFFLE
```
Reinitialize the environment of your Waffle:
```plaintext
(Waffle)> source ~/.bashrc
```
```plaintext
(Waffle)>[ROS_NAMESPACE=myspace] roslaunch turtlebot3_bringup turtlebot3_robot.launch multi_robot_name:="myspace" set_lidar_frame_id:="myspace/base_scan"
```
\ No newline at end of file