diff --git a/.github/workflows/CODEOWNERS.txt b/.github/CODEOWNERS.txt similarity index 100% rename from .github/workflows/CODEOWNERS.txt rename to .github/CODEOWNERS.txt diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md new file mode 100644 index 0000000..1ac6e91 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -0,0 +1,30 @@ +--- +name: Bug Report +about: Provide a report for what the issue is +title: '' +labels: bug +assignees: hilary-luo + +--- + +**Please provide the following information:** + - OS: (e.g. Ubuntu 20.04) + - ROS Distro: (e.g. Galactic) + - Built from source or installed: + - Package version: (if from repository, give version from `sudo dpkg -s ros-$ROS_VERSION-turtlebot4-PACKAGE_WITH_ISSUE`, if from source, give commit hash) + + **Expected behaviour** + A clear and concise description of what you expected to happen. + + **Actual behaviour** + A clear and concise description of what you encountered. + +**To Reproduce** +Provide the steps to reproduce: +1. run something +2. launch something else +3. see the error + + +**Other notes** +Add anything else you thing is important. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md new file mode 100644 index 0000000..2e3a5ba --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.md @@ -0,0 +1,14 @@ +--- +name: Feature request +about: Provide context for the feature you are requesting +title: '' +labels: enhancement +assignees: hilary-luo + +--- + +**Describe the the feature you would like** +A clear and concise description of what you want to happen. + +**Other notes** +Add anything else you thing is important. \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..420635c --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,26 @@ +## Description + +Please include a summary of the change and which issue is fixed. Also include relevant motivation and context. + +Fixes # (issue). + +## Type of change + +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) + +## How Has This Been Tested? + +Please describe the tests that you ran to verify your changes. +Provide instructions so we can reproduce. Also list any relevant details for your test configuration. + +```bash +# Run this command +ros2 launch package launch.py +``` + +## Checklist + +- [ ] I have performed a self-review of my own code +- [ ] I have commented my code, particularly in hard-to-understand areas +- [ ] I have made corresponding changes to the documentation \ No newline at end of file diff --git a/mechanical/media/TTB4_NED_battery.jpg b/mechanical/media/TTB4_NED_battery.jpg index 924a30b..ad2640a 100644 Binary files a/mechanical/media/TTB4_NED_battery.jpg and b/mechanical/media/TTB4_NED_battery.jpg differ diff --git a/mechanical/media/TTB4_NED_iso.jpg b/mechanical/media/TTB4_NED_iso.jpg index 5b56985..086ee0b 100644 Binary files a/mechanical/media/TTB4_NED_iso.jpg and b/mechanical/media/TTB4_NED_iso.jpg differ diff --git a/mechanical/media/create_tray.jpg b/mechanical/media/create_tray.jpg index 94659ba..66e3a6f 100644 Binary files a/mechanical/media/create_tray.jpg and b/mechanical/media/create_tray.jpg differ diff --git a/media/TurtleBot4.jpg b/media/TurtleBot4.jpg index 559943f..8d6f6e2 100644 Binary files a/media/TurtleBot4.jpg and b/media/TurtleBot4.jpg differ diff --git a/media/TurtleBot4s.jpg b/media/TurtleBot4s.jpg index 4e6c5bc..43cb0a9 100644 Binary files a/media/TurtleBot4s.jpg and b/media/TurtleBot4s.jpg differ diff --git a/setup/basic.md b/setup/basic.md index a52e7a9..50fce44 100644 --- a/setup/basic.md +++ b/setup/basic.md @@ -312,7 +312,7 @@ Installing a new image on the Raspberry Pi will delete any changes you may have Find the latest TurtleBot 4 Raspberry Pi images at . -- Download the latest image extract it. +- Download the latest image and extract it. - Power off your robot and then remove the microSD card from the Raspberry Pi. - Insert the microSD card into your PC. You may need an adapter. - Install the imaging tool `dcfldd` diff --git a/setup/media/controller.jpg b/setup/media/controller.jpg index 741cb28..d1cb6e6 100644 Binary files a/setup/media/controller.jpg and b/setup/media/controller.jpg differ diff --git a/setup/media/create_ap_mode.jpg b/setup/media/create_ap_mode.jpg index 2d8e78c..8bb424c 100644 Binary files a/setup/media/create_ap_mode.jpg and b/setup/media/create_ap_mode.jpg differ diff --git a/setup/media/display_ip2.jpg b/setup/media/display_ip2.jpg index 78d4c37..328937b 100644 Binary files a/setup/media/display_ip2.jpg and b/setup/media/display_ip2.jpg differ diff --git a/setup/media/ethernet.jpg b/setup/media/ethernet.jpg index 6300c11..e69a72d 100644 Binary files a/setup/media/ethernet.jpg and b/setup/media/ethernet.jpg differ diff --git a/software/turtlebot4_simulator.md b/software/turtlebot4_simulator.md index 2126cc9..160c8c2 100644 --- a/software/turtlebot4_simulator.md +++ b/software/turtlebot4_simulator.md @@ -201,6 +201,7 @@ Turtlebot 4 Ignition launch configuration options: - options: *true, false* - default: *false* - **world**: Which world to use for simulation + - options: *depot, maze, warehouse* - default: *warehouse* - **namespace**: Optional robot namespace - options: Any valid ROS 2 name as a string diff --git a/troubleshooting/faq.md b/troubleshooting/faq.md index a04c167..6ae57c3 100644 --- a/troubleshooting/faq.md +++ b/troubleshooting/faq.md @@ -55,6 +55,9 @@ You can now go to your terminal and SSH into the robot by typing: ```bash ssh ubuntu@192.168.185.3 ``` +If you are still unable to ssh into the robot and receive the error `No route to host` then this may be the result of the sd card being flashed improperly. This can happen if the image wasn't extracted before flashing or if the image was flashed to a partition on the sd card. Instructions on how to flash the SD card can be found [here](../setup/basic.md#install-latest-raspberry-pi-image). + +If you are able to ssh into the robot then you can continue the setup instructions to [connect the raspberry pi to your network](../setup/basic.md#connect-the-raspberry-pi-to-your-network). ### 2. Waiting to connect to bluetoothd... @@ -71,6 +74,10 @@ To fix this, call `sudo systemctl disable hciuart` and then reboot the Pi with ` Once the Pi has restarted, call `sudo systemctl restart hciuart`. Now you can run `sudo bluetoothctl` again and the bluetooth controller should be found. +### 4. OAKD topics not present + +There is an automatic power-saving mode that shuts down the OAKD topics when the robot is docked. Undock your robot. + ## Common issues with the user PC ### 1. ros2: command not found diff --git a/troubleshooting/media/ethernet.jpg b/troubleshooting/media/ethernet.jpg index 6300c11..e69a72d 100644 Binary files a/troubleshooting/media/ethernet.jpg and b/troubleshooting/media/ethernet.jpg differ diff --git a/troubleshooting/media/rpi4.jpg b/troubleshooting/media/rpi4.jpg index 1b71bfd..4b41112 100644 Binary files a/troubleshooting/media/rpi4.jpg and b/troubleshooting/media/rpi4.jpg differ diff --git a/troubleshooting/media/rpi4_wifi.jpg b/troubleshooting/media/rpi4_wifi.jpg index 37560ce..dbe0cac 100644 Binary files a/troubleshooting/media/rpi4_wifi.jpg and b/troubleshooting/media/rpi4_wifi.jpg differ diff --git a/tutorials/generate_map.md b/tutorials/generate_map.md index 74e4fdd..b87224b 100644 --- a/tutorials/generate_map.md +++ b/tutorials/generate_map.md @@ -92,8 +92,16 @@ Keep watch of RVIZ as you drive the robot around the area to make sure that the Once you are happy with your map, you can save it with the following command: + ```bash -ros2 run nav2_map_server map_saver_cli -f "map_name" --ros-args -p map_subscribe_transient_local:=true -r __ns:=/namespace +ros2 service call /slam_toolbox/save_map slam_toolbox/srv/SaveMap "name: + data: 'map_name'" +``` + + + +```note +If you are using namespacing, you will need to call the map saver tool directly: `ros2 run nav2_map_server map_saver_cli -f "map_name" --ros-args -p map_subscribe_transient_local:=true -r __ns:=/namespace` ``` This will save the map to your current directory. diff --git a/tutorials/navigation.md b/tutorials/navigation.md index 4630443..2683af8 100644 --- a/tutorials/navigation.md +++ b/tutorials/navigation.md @@ -49,11 +49,11 @@ Replace `office.yaml` with your own map. ros2 launch turtlebot4_ignition_bringup ignition.launch.py nav2:=true slam:=off localization:=true ``` -This will launch the simulation in the default `depot` world and will use the existing `depot.yaml` file for the map. If you are using a different world you will need to create a map for it and pass that in as a launch argument. +This will launch the simulation in the default `depot` world and will use the existing `depot.yaml` file for the map. If you are using a custom world you will need to build the [turtlebot4_simulator package](../software/turtlebot4_simulator.md#source-installation) from source and place your world file [alongside the others](https://github.com/turtlebot/turtlebot4_simulator/tree/galactic/turtlebot4_ignition_bringup/worlds). You will then need to create a map for it and pass both the world name and the map file path in as launch arguments. For example: ```bash -ros2 launch turtlebot4_ignition_bringup ignition.launch.py nav2:=true slam:=off localization:=true world:=classroom map:=classroom.yaml +ros2 launch turtlebot4_ignition_bringup ignition.launch.py nav2:=true slam:=off localization:=true world:=classroom map:=path/to/classroom.yaml ``` {% endtab %} @@ -89,12 +89,22 @@ If using multiple robots through the namespacing method, an additional `namespac ros2 launch turtlebot4_ignition_bringup turtlebot4_ignition.launch.py nav2:=true slam:=false localization:=true rviz:=true ``` -This will launch the simulation in the default `warehouse` world and will use the existing [`warehouse.yaml`](https://github.com/turtlebot/turtlebot4/blob/humble/turtlebot4_navigation/maps/warehouse.yaml) file for the map. If you are using a different world you will need to create a map for it and pass that in as a launch argument. +This will launch the simulation in the default `warehouse` world and will use the existing [`warehouse.yaml`](https://github.com/turtlebot/turtlebot4/blob/humble/turtlebot4_navigation/maps/warehouse.yaml) file for the map. + +To launch a different supported world, see the [simulation package](../software/turtlebot4_simulator.md#ignition-bringup) for a list of supported worlds. You must pass the name of the chosen world and the path to the map file. + +For example: +```bash +ros2 launch turtlebot4_ignition_bringup turtlebot4_ignition.launch.py nav2:=true slam:=false localization:=true \ +rviz:=true world:=depot map:=/opt/ros/humble/share/turtlebot4_navigation/maps/depot.yaml +``` + +If you are using a custom world you will need to build the [turtlebot4_simulator package](../software/turtlebot4_simulator.md#source-installation) from source and place your world file [alongside the others](https://github.com/turtlebot/turtlebot4_simulator/tree/humble/turtlebot4_ignition_bringup/worlds). You will then need to create a map for it and pass both the world name and the map file path in as launch arguments. For example: ```bash ros2 launch turtlebot4_ignition_bringup turtlebot4_ignition.launch.py nav2:=true slam:=false localization:=true \ -rviz:=true world:=maze map:=src/turtlebot4/turtlebot4_navigation/maps/maze.yaml +rviz:=true world:=classroom map:=path/to/classroom.yaml ``` {% endtab %} diff --git a/tutorials/turtlebot4_navigator.md b/tutorials/turtlebot4_navigator.md index 1876cbb..218d7c9 100644 --- a/tutorials/turtlebot4_navigator.md +++ b/tutorials/turtlebot4_navigator.md @@ -23,7 +23,11 @@ TurtleBot 4 Navigator requires at least version 1.0.11 of Nav2 Simple Commander ## Install Tutorial Package -The following examples can be installed with `sudo apt install ros-$ROS_DISTRO-turtlebot4-tutorials` and are available at . For each example, the robot starts on a dock at the origin of the map. +The following examples can be installed with `sudo apt install ros-$ROS_DISTRO-turtlebot4-tutorials` and are available at . For each example, the robot starts on a dock at the origin of the map. + +```note +All of these examples are designed to be run in the simulation environment. In order to run these tutorial codes with a physical robot you must install the tutorial package from source and modify target destinations to ones that make sense in your map. You then must individually launch SLAM, Nav2, Localization, and RViz as necessary and pass a map of your environment when launching localization. This is only recommended for intermediate users and up because there are no walkthrough instructions. +``` ## Navigate to Pose @@ -263,7 +267,7 @@ ros2 launch turtlebot4_viz view_robot.launch.py Your browser does not support the video tag. -
Navigate to a pose
+
Navigate to a pose (3x speed)
{% endtab %}