Turtlebot 4 - Setup¶
1. Flashing image to SD card¶
Download SD card image from: http://download.ros.org/downloads/turtlebot4/ and flash it with rpi-imager.
If you need rpi-imager install it with:
sudo pacman -S rpi-imager
TODO
2. Connect Turtlebot 4 to WiFi network¶
2.1 Connect to Turtlebot 4’s WiFi hotspot¶
2.2 SSH into Turtlebot 4¶
ssh ubuntu@10.42.0.1
2.3 Connect Turtlebot 4 to WiFi network¶
Run:
turtlebot4-setup
graph LR
turtlebot-setup[**TurtlebotSetup**] -- Wi-Fi Setup --> wifi-setup[**WiFi Setup**] --> wifi-mode{{WiFI Mode: **Client**}};
wifi-setup --> ssid{{SSID: ***wifi_ssid***}};
wifi-setup --> passwod{{Password: ***wifi_password***}};
wifi-setup --> save[**Save**];
turtlebot-setup --> apply[**Apply Settings**] --> yes[**Yes**]
Turtlebot 4 is now connected to WiFi network.
3. Turtlebot 4 setup¶
3.1 SSH into Turtlebot 4¶
Run:
ssh ubuntu@<TURTLEBOT4_IP_ADDRESS>
3.1.1 Find Turtlebot 4’s IP¶
Install arp-scan if you haven’t already:
sudo pacman -S arp-scan
TODO
than run
sudo arp-scan -l
Example output:
Interface: wlan0, type: EN10MB, MAC: 60:45:2e:14:11:03, IPv4: 192.168.8.247
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.8.1 94:83:c4:0a:d0:2d GL Technologies (Hong Kong) Limited
192.168.8.109 d8:3a:dd:08:54:aa Raspberry Pi Trading Ltd
192.168.8.166 14:85:7f:58:d0:72 Intel Corporate
5 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.10.0: 256 hosts scanned in 1.955 seconds (130.95 hosts/sec). 4 responded
In above example Turtlebot 4’s Raspberry Pi is detected with IP 192.168.8.109.
3.2 Update Turtlebot 4¶
Turtlebot4 User Manual: Updating the TurtleBot 4
Now it’s a good idea to update the Turtlebot 4:
sudo apt update
sudo apt -y upgrade
3.3 Update Create 3¶
Access Create 3 user interface: <TURTLEBOT4_IP_ADDRESS>:8080
Download the correct firmware from: https://iroboteducation.github.io/create3_docs/releases/overview/
Attention
If you are using ROS 2 Jazzy, make sure you install firmware with version I.*.*. Firmware versions starting with G or H are not compatible with Jazzy.
Unlike previous versions, the Create® 3 firmware I.*.* does not support switching between FastDDS and CycloneDDS. Instead there are two separate versions of the firmware available, each supporting one RMW implementation. When installing the firmware on your Create® 3 you must use the firmware that corresponds to the middleware you intend to use.
For ROS 2 Jazzy, the default is FastDDS. Unless you have specific reasons for using CycloneDDS, it is recommended to use the FastDDS firmware on your Create® 3.
Than ugrade the firmware on Create 3.
graph LR
create3[**Create 3 UI**] --> update[**Update**] --> browse[**Browse**] --> firmware{{*select downloaded firmware*}}
update --> upload[**Upload file and update**]
4. Networking configuration¶
Turtlebot4 User Manual: Networking
4.1 Discovery Server¶
4.1.1 Create3 Setup¶
Update to latest firmware: see 3.3
Factory reset Create 3
graph LR
create3[**Create 3 UI**] --> about[**About**] --> factory-reset[**Factory reset URL**<br>at the end of the page]
4.1.2 Raspberry Pi Setup¶
SSH into the Turtlebot 4 and run:
turtlebot4-setup
graph LR
turtlebot-setup[**TurtlebotSetup**] -- ROS Setup -->
ros-setup[**ROS Setup**] -- Bash Setup --> bash-setup[**Bash Setup**] --> robot-namespace{{ROBOT_NAMESPACE:<br>***robot_namespace***}}
bash-setup --> save[**Save**]
ros-setup -- Discovery Server --> discovery-server[**Discovery Server**] --> enabled{{Enabled: **True**}};
discovery-server --> server-id{{Onboard Server<br>Server ID:<br>***robot_id***}}
discovery-server --> save2[**Save**];
turtlebot-setup --> apply[**Apply Settings**] --> yes[**Yes**];
turtlebot-setup --> exit[**Exit**]
than run:
turtlebot4-source
and
turtlebot4-daemon-restart
4.1.3 PC Setup¶
Run:
wget -qO - https://raw.githubusercontent.com/turtlebot/turtlebot4_setup/jazzy/turtlebot4_discovery/configure_discovery.sh | bash <(cat) </dev/tty
Settings:
ROS_DOMAIN_ID:
<ros_domain_id>Discovery Server ID:
<robot_id>(selected in step 4.1.2)Discovery Server IP:
<raspberry_pi_IP>Discovery Server Port: leave default
When finished run:
source ~/.bashrc
ros2 daemon stop; ros2 daemon start
and test configuration with:
ros2 topic list