├── .github
├── CODEOWNERS
├── DISCUSSION_TEMPLATE
│ └── Questions.yml
└── workflows
│ └── ci.yml
├── .gitignore
├── LICENSE.txt
├── README.md
├── docs
├── api
│ ├── data
│ │ └── create3_dock_codes.png
│ ├── docking.md
│ ├── drive-goals.md
│ ├── hazards.md
│ ├── moving-the-robot.md
│ ├── odometry.md
│ ├── reflexes.md
│ ├── ros2.md
│ ├── safety.md
│ ├── ui.md
│ └── wall-follow.md
├── assets
│ ├── irobot_symbol_green.png
│ └── irobot_symbol_white.png
├── examples
│ ├── actuators-cli.md
│ ├── create3_examples.md
│ ├── data
│ │ ├── create3_lidar_rviz.png
│ │ └── create3_lidar_top.jpg
│ ├── driving-cli.md
│ └── sensors-cli.md
├── faq
│ ├── data
│ │ ├── Create-3_Product-Information-Guide.pdf
│ │ ├── buttons.png
│ │ ├── faceplate.png
│ │ ├── power-1.png
│ │ ├── power-2.png
│ │ ├── power-3.png
│ │ ├── setup-1-1.png
│ │ ├── setup-1-2.png
│ │ ├── setup-2-1.png
│ │ ├── setup-2-2.png
│ │ ├── setup-2-3.png
│ │ ├── setup-2-4.png
│ │ ├── setup-2-5.png
│ │ ├── setup-3-1.png
│ │ ├── setup-3-2.png
│ │ ├── setup-3-3.png
│ │ ├── setup-3-4.png
│ │ └── setup-3-5.png
│ └── faq.md
├── hw
│ ├── adapter.md
│ ├── data
│ │ ├── 3d_model.jpg
│ │ ├── adapter_in.jpg
│ │ ├── adapter_out.jpg
│ │ ├── bottom.jpg
│ │ ├── bottom_drawing.svg
│ │ ├── buttons.png
│ │ ├── cargo_bay_caster.png
│ │ ├── cargo_bay_drawing.svg
│ │ ├── caster_attachment.png
│ │ ├── faceplate_drawing.svg
│ │ ├── front_iso.jpg
│ │ ├── hookup_jetson_xavier_nx.jpg
│ │ ├── hookup_jetson_xavier_nx_on_c3_with_PC.jpg
│ │ ├── hookup_nano2gb.jpg
│ │ ├── hookup_navqplus_adapter_mount_bay.jpg
│ │ ├── hookup_navqplus_case_faceplate.jpg
│ │ ├── hookup_pi3b.jpg
│ │ ├── hookup_pi4.jpg
│ │ ├── hookup_piZ.jpg
│ │ ├── iRobot_Create_3_Public_Model.step
│ │ ├── ir_sensors_drawing.svg
│ │ ├── lightring
│ │ │ ├── blue_spinning.gif
│ │ │ ├── blue_spinning.jpg
│ │ │ ├── boot.gif
│ │ │ ├── charged_spinning.gif
│ │ │ ├── cyan_solid.jpg
│ │ │ ├── cyan_spinning.gif
│ │ │ ├── green_solid.jpg
│ │ │ ├── orange_half_solid.jpg
│ │ │ ├── orange_pulsing.gif
│ │ │ ├── orange_solid.jpg
│ │ │ ├── purple_spinning.gif
│ │ │ ├── red_pulsing.gif
│ │ │ ├── red_solid.jpg
│ │ │ ├── red_spinning.gif
│ │ │ ├── white_solid.jpg
│ │ │ ├── yellow-blue_solid.jpg
│ │ │ ├── yellow-green_solid.jpg
│ │ │ ├── yellow-red_solid.jpg
│ │ │ ├── yellow-white_solid.jpg
│ │ │ ├── yellow_half_solid.jpg
│ │ │ └── yellow_solid.jpg
│ │ ├── lock_faceplate.svg
│ │ ├── models
│ │ │ ├── Caster
│ │ │ │ ├── Cargo_Bay_with_Caster
│ │ │ │ │ ├── C3-Cargo-Bay-With-Caster.png
│ │ │ │ │ └── C3-Cargo-Bay-With-Caster.stl
│ │ │ │ ├── Caster_Lock
│ │ │ │ │ ├── C3-Caster-Lock.png
│ │ │ │ │ └── C3-Caster-Lock.stl
│ │ │ │ ├── Rear_Caster_Attachment
│ │ │ │ │ ├── C3-Rear-Caster-Attachment.png
│ │ │ │ │ └── C3-Rear-Caster-Attachment.stl
│ │ │ │ └── Rear_Caster_Attachment_Latch
│ │ │ │ │ ├── C3-Rear-Caster-Attachment-Latch.png
│ │ │ │ │ └── C3-Rear-Caster-Attachment-Latch.stl
│ │ │ ├── Compute
│ │ │ │ ├── NVIDIA_Jetson
│ │ │ │ │ └── Mount_Bracket
│ │ │ │ │ │ ├── C3-JetsonXavierNX-Mount.3mf
│ │ │ │ │ │ ├── C3-JetsonXavierNX-Mount.png
│ │ │ │ │ │ ├── C3-JetsonXavierNX-Mount.stl
│ │ │ │ │ │ └── C3-JetsonXavierNX-Mount_slice-example.png
│ │ │ │ ├── NavQPlus_by_NXP
│ │ │ │ │ ├── Adapter_Plate
│ │ │ │ │ │ ├── C3-RudisLabs-NavQPlus-Adapter.png
│ │ │ │ │ │ ├── C3-RudisLabs-NavQPlus-Adapter.stl
│ │ │ │ │ │ └── C3-RudisLabs-NavQPlus-Adapter.stp
│ │ │ │ │ ├── Case_Base
│ │ │ │ │ │ ├── C3-NavQPlus-Base.png
│ │ │ │ │ │ ├── C3-NavQPlus-Base.stl
│ │ │ │ │ │ └── C3-NavQPlus-Base.stp
│ │ │ │ │ └── Case_Top
│ │ │ │ │ │ ├── C3-NavQPlus-Top.png
│ │ │ │ │ │ ├── C3-NavQPlus-Top.stl
│ │ │ │ │ │ └── C3-NavQPlus-Top.stp
│ │ │ │ └── Raspberry_Pi
│ │ │ │ │ ├── Large_Mount
│ │ │ │ │ ├── C3-RPi-Mount-20211022.png
│ │ │ │ │ └── C3-RPi-Mount-20211022.stl
│ │ │ │ │ └── Small_Mount
│ │ │ │ │ ├── C3-RPi-Mount-Small-20211022.png
│ │ │ │ │ └── C3-RPi-Mount-Small-20211022.stl
│ │ │ ├── Generic
│ │ │ │ ├── Bolt_Post_Mount
│ │ │ │ │ ├── C3-RudisLabs-Threaded-1_4-20UNC-post-mount.png
│ │ │ │ │ ├── C3-RudisLabs-Threaded-1_4-20UNC-post-mount.stl
│ │ │ │ │ ├── C3-RudisLabs-Threaded-1_4-20UNC-post-mount.stp
│ │ │ │ │ └── details.txt
│ │ │ │ └── Stud_Mount
│ │ │ │ │ ├── C3-Stud-Mount.png
│ │ │ │ │ └── C3-Stud-Mount.stl
│ │ │ └── Sensors
│ │ │ │ ├── IntelRealSense
│ │ │ │ └── D435_Mount
│ │ │ │ │ ├── C3-RealSense-D435-Mount.png
│ │ │ │ │ └── C3-RealSense-D435-Mount.stl
│ │ │ │ ├── Luxonis
│ │ │ │ ├── Oak-D_Lite_Mount
│ │ │ │ │ ├── C3-OAK-D-Lite-Mount.png
│ │ │ │ │ └── C3-OAK-D-Lite-Mount.stl
│ │ │ │ └── Oak-D_Mount
│ │ │ │ │ ├── C3-OAK-D-Mount.png
│ │ │ │ │ └── C3-OAK-D-Mount.stl
│ │ │ │ └── SLAMTEC
│ │ │ │ ├── RPLIDAR_A1_Minimal_Mount
│ │ │ │ ├── C3-RudisLabs-Minimal-RPLIDAR-A1M8-Adapter.png
│ │ │ │ ├── C3-RudisLabs-Minimal-RPLIDAR-A1M8-Adapter.stl
│ │ │ │ └── C3-RudisLabs-Minimal-RPLIDAR-A1M8-Adapter.stp
│ │ │ │ ├── RPLIDAR_A1_Mount
│ │ │ │ ├── C3-RPLidar-A1-Mount.png
│ │ │ │ └── C3-RPLidar-A1-Mount.stl
│ │ │ │ └── RPLIDAR_A1_USB_Mount
│ │ │ │ ├── C3-RPLidar-A1-USB-Mount.png
│ │ │ │ └── C3-RPLidar-A1-USB-Mount.stl
│ │ ├── navqplus_case_sensors.jpg
│ │ ├── payload_surfaces.svg
│ │ ├── rear_iso.jpg
│ │ ├── remove_faceplate.svg
│ │ ├── side_drawing.svg
│ │ └── top_drawing.svg
│ ├── electrical.md
│ ├── face.md
│ ├── hookup.md
│ ├── jetson_hookup.md
│ ├── mechanical.md
│ ├── navqplus_hookup.md
│ ├── overview.md
│ ├── print_casters.md
│ ├── print_compute.md
│ ├── print_generic.md
│ ├── print_sensor_mounts.md
│ └── rpi_hookup.md
├── index.md
├── lessons
│ ├── Create3-Welcome-Guide.pdf
│ ├── getting-started.md
│ ├── pwp
│ │ ├── Create3-C3_Phone_Home.pdf
│ │ ├── Create3-Rainbow_Light_Painting.pdf
│ │ ├── Create3-Robot_Dance_Recital.pdf
│ │ ├── Create3-Sound_Off.pdf
│ │ ├── Python-Web-Playground_First-Project.pdf
│ │ ├── airtable
│ │ │ ├── add-a-base.png
│ │ │ ├── api-documentation.png
│ │ │ ├── auth.png
│ │ │ ├── forward.png
│ │ │ ├── help.png
│ │ │ ├── name-base.png
│ │ │ ├── open-base.png
│ │ │ ├── playground-info.png
│ │ │ └── pwp-screenshot.png
│ │ ├── c3-phone-home.md
│ │ ├── cheat-sheets.md
│ │ ├── integrating-airtable.md
│ │ ├── light-painting.md
│ │ ├── pwp-sdk_commands.pdf
│ │ ├── robot-dance-recital.md
│ │ ├── sound-off-1-2.md
│ │ └── web-playground.md
│ └── ros2
│ │ ├── intro
│ │ ├── creating-packages.md
│ │ ├── serial-communication.md
│ │ ├── working-with-the-cli.md
│ │ ├── writing-action-clients.md
│ │ └── writing-pubs-and-subs.md
│ │ ├── overview.md
│ │ ├── teleop-1.gif
│ │ ├── teleop-2.gif
│ │ └── teleop-twist.md
├── releases
│ ├── g_1_1.md
│ ├── g_2_2.md
│ ├── g_3_1.md
│ ├── g_4_1.md
│ ├── g_4_3.md
│ ├── g_4_4.md
│ ├── g_4_5.md
│ ├── g_5_1.md
│ ├── g_5_2.md
│ ├── g_5_3.md
│ ├── g_5_4.md
│ ├── h_0_0.md
│ ├── h_1_0.md
│ ├── h_1_1.md
│ ├── h_1_2.md
│ ├── h_2_1.md
│ ├── h_2_2.md
│ ├── h_2_3.md
│ ├── h_2_4.md
│ ├── h_2_5.md
│ ├── h_2_6.md
│ ├── i_0_0.md
│ └── overview.md
├── setup
│ ├── compute-ntp.md
│ ├── data
│ │ ├── app-config.png
│ │ ├── appconfig.png
│ │ ├── cmdline.txt
│ │ ├── create3_ros_domain_id.png
│ │ ├── ethoverusb.png
│ │ ├── ethoverusb_step1-2.png
│ │ ├── ethoverusb_step3.png
│ │ ├── fastdds.png
│ │ ├── jetson_setup_flow_overview.png
│ │ ├── logs.png
│ │ ├── navqplus
│ │ │ ├── flash_hookup_lights.jpg
│ │ │ ├── usb_network.png
│ │ │ ├── uuu_emmc.png
│ │ │ └── uuu_ls.png
│ │ ├── network-config.txt
│ │ ├── nv-l4t-usb-device-mode-runtime-start.sh
│ │ ├── super_client_configuration_file.xml
│ │ └── usercfg.txt
│ ├── discovery-server.md
│ ├── docker.md
│ ├── jetson.md
│ ├── multi-robot.md
│ ├── navqplus.md
│ ├── network-config.md
│ ├── pi4.md
│ ├── pi4galactic.md
│ ├── pi4humble.md
│ ├── provision.md
│ ├── ubuntu2004.md
│ ├── ubuntu2204.md
│ └── xml-config.md
├── sim
│ └── setup.md
├── stylesheets
│ └── irobot-palette.css
└── webserver
│ ├── about.md
│ ├── application.md
│ ├── connect.md
│ ├── data
│ ├── about.png
│ ├── app-config.png
│ ├── connect.png
│ ├── edit-ntp-conf.png
│ ├── edit-wpa-supp.png
│ ├── home-in-AP.png
│ ├── home.png
│ ├── logs.png
│ ├── rmw-profile-override.png
│ ├── serial-config.png
│ ├── set-datetime.png
│ ├── set-wired-subnet.png
│ ├── update-expanded.png
│ └── update.png
│ ├── edit-ntp-conf.md
│ ├── forget-wifi.md
│ ├── home.md
│ ├── logs.md
│ ├── overview.md
│ ├── restart-ntpd.md
│ ├── rmw-profile-override.md
│ ├── serial-config.md
│ ├── set-datetime.md
│ ├── set-wired-subnet.md
│ ├── update.md
│ └── wpa-supp-override.md
├── main.py
├── mkdocs.yml
├── model_image_generation.txt
├── requirements.txt
└── theme_overrides
└── partials
└── footer.html
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @alsora @justinIRBT @shamlian @wpd
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: ci
2 | on:
3 | push:
4 | branches:
5 | - main
6 | jobs:
7 | deploy:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - name: Checkout main
11 | uses: actions/checkout@v2
12 |
13 | - name: Deploy docs
14 | uses: mhausenblas/mkdocs-deploy-gh-pages@master
15 | env:
16 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
17 | CONFIG_FILE: mkdocs.yml
18 | EXTRA_PACKAGES: build-base
19 | REQUIREMENTS: requirements.txt
20 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | env/
12 | build/
13 | develop-eggs/
14 | dist/
15 | downloads/
16 | eggs/
17 | .eggs/
18 | lib/
19 | lib64/
20 | parts/
21 | sdist/
22 | var/
23 | *.egg-info/
24 | .installed.cfg
25 | *.egg
26 |
27 | # PyInstaller
28 | # Usually these files are written by a python script from a template
29 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
30 | *.manifest
31 | *.spec
32 |
33 | # Installer logs
34 | pip-log.txt
35 | pip-delete-this-directory.txt
36 |
37 | # Unit test / coverage reports
38 | htmlcov/
39 | .tox/
40 | .coverage
41 | .coverage.*
42 | .cache
43 | nosetests.xml
44 | coverage.xml
45 | *,cover
46 | .hypothesis/
47 |
48 | # Translations
49 | *.mo
50 |
51 | # Scrapy stuff:
52 | .scrapy
53 |
54 | # PyBuilder
55 | target/
56 |
57 | # IPython Notebook
58 | .ipynb_checkpoints
59 |
60 | # pyenv
61 | .python-version
62 |
63 | # virtualenv
64 | venv/
65 | ENV/
66 |
67 | # MkDocs documentation
68 | site/
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright 2021 iRobot Corporation.
2 |
3 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4 |
5 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
7 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
8 |
9 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
10 | IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # create3_docs
2 |
3 | This repository contains the source code for the iRobot® Create® 3 Educational Robot documentation.
4 | The automatically generated website can be viewed at https://iroboteducation.github.io/create3_docs/
5 |
6 | ### Build the docs locally
7 |
8 | Install required dependencies:
9 |
10 | ```bash
11 | pip3 install mkdocs
12 | pip3 install mkdocs-material
13 | pip3 install -r requirements.txt
14 | ```
15 |
16 | Optionally, if you desire to generate images of STL models dynamically install:
17 |
18 | ```bash
19 | pip3 install -r model_image_generation.txt
20 | ```
21 |
22 |
23 | Build the documentation locally:
24 |
25 | ```bash
26 | mkdocs serve
27 | ```
28 |
29 | Open `http://127.0.0.1:8000/` in a browser to visualize the docs.
30 |
31 | ### Updating the docs
32 |
33 | After commits are pushed to the `main` branch a new build of the website will automatically start.
34 |
--------------------------------------------------------------------------------
/docs/api/data/create3_dock_codes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/api/data/create3_dock_codes.png
--------------------------------------------------------------------------------
/docs/api/docking.md:
--------------------------------------------------------------------------------
1 | # Create® 3 Docking
2 |
3 | The Create® 3 robot is equipped with a docking station to recharge it between experiments.
4 |
5 | Through the ROS 2[^1] APIs users can command docking and undocking autonomous behaviors.
6 |
7 | !!! warning
8 | Note that the docking action and sensor topic changed between Galactic and Humble.
9 |
10 | In order for the robot to detect the dock, determine its location, and understand when it is succesfully docked, it is necessary that the docking station is connected to a power source.
11 |
12 | ## Autonomous behaviors
13 |
14 | #### Undocking
15 |
16 | You can command the robot to undock using the following ROS 2 action.
17 |
18 | ```bash
19 | ros2 action send_goal /undock irobot_create_msgs/action/Undock "{}"
20 | ```
21 |
22 | The robot will move backward out of the dock and then it will rotate 180 degrees.
23 |
24 | This action will fail if the robot is already undocked.
25 |
26 | #### Docking
27 |
28 | You can command the robot to dock using a ROS 2 action.
29 |
30 | ##### Galactic
31 | ```bash
32 | ros2 action send_goal /dock irobot_create_msgs/action/DockServo "{}"
33 | ```
34 |
35 | ##### Humble
36 | ```bash
37 | ros2 action send_goal /dock irobot_create_msgs/action/Dock "{}"
38 | ```
39 |
40 | The robot will first search for the dock in its immediate surroundings.
41 | Note that the action will fail if the robot is too far from the dock.
42 | You can check if the dock is visible by subscribing to the (in Galactic) `/dock` (or in Humble) `/dock_status` ROS 2 topic.
43 |
44 | Then the robot will align with the dock and carefully drive onto it.
45 |
46 | This action will fail if the robot is already docked.
47 |
48 | ## Docking sensor data
49 |
50 | The Create® 3 robot exposes several docking-related information through its ROS 2 publications.
51 | These should allow users to write their own algorithms taking into account the presence of the dock in the environment and even to write their own docking and undocking procedures.
52 |
53 | #### IR opcodes
54 |
55 | The Create® 3 docking station transmit several IR signals.
56 | The Create® 3 robot is equipped with two different sensors that are capable of detecting them.
57 |
58 | 
59 |
60 | The robot will publish these signals in the `/ir_opcode` ROS 2 topic.
61 | Each message will contain a time-stamped detection of one of those signals, including the identifier of the sensor that detected it.
62 |
63 | #### Dock information
64 |
65 | In Galactic, more high-level information is produced by the robot in the `/dock` ROS 2 topic.
66 | In Humble and beyond, the topic has been renamed to `/dock_status`.
67 | Here it's possible to quickly know if the robot is able to see the dock from its current location and whether it is currently docked or not.
68 |
69 | [^1]: ROS 2 is governed by Open Robotics
70 | [^2]: All trademarks mentioned are the property of their respective owners.
71 |
--------------------------------------------------------------------------------
/docs/api/drive-goals.md:
--------------------------------------------------------------------------------
1 | # Create® 3 Drive Goals
2 |
3 | The Create® 3 robot exposes some actions for simple driving goals that close the loop on odometry position.
4 |
5 | Through the ROS 2[^1] APIs users can command:
6 |
7 | * Driving along a specified arc
8 |
9 | * Driving in a straight line for a fixed distance
10 |
11 | * Navigating to a specified odometry position and orientation
12 |
13 | * Rotating a fixed angle
14 |
15 | A cliff event or a wheel stall will trigger a goal to cancel,
16 | otherwise it will run until the robot achieves the odometry goal or it's canceled by the user.
17 | If there is something blocking the robot's path,
18 | the user must intervene to stop the robot,
19 | otherwise it will continue to bump until odometry slip achieves the goal position.
20 |
21 | ## Built-in Drive Goals behaviors
22 |
23 | #### Drive Arc
24 |
25 | You can command the robot to drive a fixed angle along an arc defined by radius:
26 |
27 | ```bash
28 | ros2 action send_goal /drive_arc irobot_create_msgs/action/DriveArc "{angle: 1.57,radius: 0.3,translate_direction: 1,max_translation_speed: 0.3}"
29 | ```
30 |
31 | The robot will drive forward or backward given the translate direction along an arc defined by radius until it achieves the specified relative heading.
32 |
33 | #### Drive Distance
34 |
35 | You can command the robot to drive a fixed distance in a straight line:
36 |
37 | ```bash
38 | ros2 action send_goal /drive_distance irobot_create_msgs/action/DriveDistance "{distance: 0.5,max_translation_speed: 0.15}"
39 | ```
40 |
41 | The robot will drive straight until it has traveled the specified distance in odometry frame.
42 | It will drive backwards if distance is negative (be aware of the [backup limit](../safety/#backup-limit)).
43 |
44 | #### Navigate To Position
45 |
46 | You can command the robot to drive to the specified odometry position:
47 |
48 | ```bash
49 | ros2 action send_goal /navigate_to_position irobot_create_msgs/action/NavigateToPosition "{achieve_goal_heading: true,goal_pose:{pose:{position:{x: 1,y: 0.2,z: 0.0}, orientation:{x: 0.0,y: 0.0, z: 0.0, w: 1.0}}}}"
50 | ```
51 |
52 | The robot will take a rotate -> translate -> rotate approach to achieve the goal position.
53 | First rotating from its current heading to face the goal position, then driving straight to the goal position,
54 | then optionally rotating to achieve the goal heading.
55 |
56 | #### Rotate Angle
57 |
58 | You can command the robot to rotate a relative angle from current robot heading:
59 |
60 | ```bash
61 | ros2 action send_goal /rotate_angle irobot_create_msgs/action/RotateAngle "{angle: 1.57,max_rotation_speed: 0.5}"
62 | ```
63 |
64 | The robot will rotate either clockwise (negative angle) or counter clockwise (positive angle) until it has achieved the angle offset.
65 |
66 | [^1]: ROS 2 is governed by Open Robotics
67 | [^2]: All trademarks mentioned are the property of their respective owners.
68 |
--------------------------------------------------------------------------------
/docs/api/moving-the-robot.md:
--------------------------------------------------------------------------------
1 | # Moving the Robot
2 |
3 | This page describes the various APIs available to move the Create® 3 robot via ROS 2[^1].
4 |
5 | !!! important
6 | Supervise your robot while executing movements, to avoid risk of damaging it or its surroundings.
7 |
8 | !!! important
9 | It's recommended to not try to command robot motions if the robot is on its docking station.
10 | Either lift it and place it somewhere else or use the built-in [undocking behavior](../docking/#undocking).
11 |
12 |
13 | ## Velocity Control
14 |
15 | The velocity control API is the simplest way to move the Create® 3 robot.
16 | It's recommended for beginners and to simply try out the robot.
17 | Being the lowest-level motion API exposed by the robot, this is also recommended to the more advanced users who want to implement their own autonomous navigation applications.
18 |
19 | The robot is controlled by publishing [geometry_msgs/msg/Twist](https://github.com/ros2/common_interfaces/blob/rolling/geometry_msgs/msg/Twist.msg) messages to the `/cmd_vel` topic.
20 | For example, to move the robot straight forward using the ROS 2 command line:
21 |
22 | ```bash
23 | ros2 topic pub -r 20 /cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.2, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}"
24 | ```
25 |
26 | The robot will execute the last received message on the topic until a fixed timeout period has passed or a new message is received, at which point the timer is restarted and this process begins again.
27 | The purpose of the timeout is to provide an easy way to stop the robot, i.e. just stop sending messages rather than having to send an explicit "0", and to prevent the robot to keep moving if it has lost connectivity with the process controlling it (e.g. a script on the user's laptop).
28 |
29 |
47 |
48 | Note that these raw velocity commands have lower "priority" than the other request-based approaches to move the robot (described in the next sections).
49 | The request of a position control or autonomous behavior goal will block the execution of the `cmd_vel` messages, which will be ignored until the goal terminates.
50 | The corollary is that it's of no use to publish `cmd_vel` messages while those are running; you should rather first wait for the behavior to finish or actively cancel it.
51 |
52 | ## Position Control
53 |
54 | The position control APIs are suitable for users who want to implement simple high-level strategies, such as driving a specific pattern.
55 | Basic position control, based on the internal dead-reckoning estimate of the robot, is exposed to the user via ROS 2 action goals.
56 | See the [drive goals documentation](drive-goals.md) for details.
57 |
58 | ## Autonomous Behaviors
59 |
60 | The Create® 3 robot exposes some autonomous behaviors suitable for more specific situations.
61 | These behaviors are controlled using ROS 2 action goals.
62 |
63 | - [Docking and Undocking](docking.md)
64 | - [Obstacle Following](wall-follow.md)
65 |
66 |
67 | [^1]: ROS 2 is governed by Open Robotics
68 |
--------------------------------------------------------------------------------
/docs/api/odometry.md:
--------------------------------------------------------------------------------
1 | # Odometry Estimation
2 |
3 | The Create® 3 robot is equipped with a variety of sensors that are used to detect its motions.
4 | In particular you will find:
5 |
6 | - IMU
7 | - Optical mouse
8 | - Wheel encoders
9 |
10 | Many details about these messages can be found in the message definitions themselves, which are linked below.
11 |
12 | ## Raw sensor topics
13 |
14 | If you want to implement your own algorithms using the raw sensor readings, you can read them from the following topics:
15 |
16 | ### The `imu` topic
17 |
18 | The `imu` topic produces messages of type [`sensor_msgs/msg/Imu`](https://github.com/ros2/common_interfaces/blob/rolling/sensor_msgs/msg/Imu.msg).
19 | As of G.4 / H.1, this topic publishes at 100 Hz.
20 | Prior to these releases, this topic published at 62.5 Hz.
21 |
22 | ### The `mouse` topic
23 |
24 | The `mouse` topic produces messages of type [`irobot_create_msgs/msg/Mouse`](https://github.com/iRobotEducation/irobot_create_msgs/blob/rolling/msg/Mouse.msg).
25 | This topic publishes at 62.5 Hz.
26 |
27 | ### The `wheel_status` topic
28 |
29 | The `wheel_status` topic produces messages of type [`irobot_create_msgs/msg/WheelStatus`](https://github.com/iRobotEducation/irobot_create_msgs/blob/rolling/msg/WheelStatus.msg).
30 | This topic publishes at 62.5 Hz.
31 |
32 | ### The `wheel_ticks` topic
33 |
34 | The `wheel_ticks` topic produces messages of type [`irobot_create_msgs/msg/WheelTicks`](https://github.com/iRobotEducation/irobot_create_msgs/blob/rolling/msg/WheelStatus.msg).
35 | This topic publishes at 62.5 Hz.
36 | There are 508.8 ticks per wheel rotation.
37 |
38 | ### The `wheel_vels` topic
39 |
40 | The `wheel_status` topic produces messages of type [`irobot_create_msgs/msg/WheelStatus`](https://github.com/iRobotEducation/irobot_create_msgs/blob/rolling/msg/WheelVels.msg).
41 | This topic publishes at 62.5 Hz.
42 |
43 | ## Fused Sensor topics
44 |
45 | The following topics are computed on-board the Create 3 robot using its raw sensor data.
46 |
47 | ### The `odom` topic
48 |
49 | The `odom` topic produces messages of type [`nav_msgs/msg/Odometry`](https://github.com/ros2/common_interfaces/blob/rolling/nav_msgs/msg/Odometry.msg).
50 | The Create® 3 robot fuses the reading from its various sensors in order to produce a dead reckoning estimate of its pose on the `odom` topic.
51 | This topic publishes at 20 Hz.
52 |
53 | ### The `slip_status` topic
54 |
55 | The `slip_status` topic produces messages of type [`irobot_create_msgs/msg/SlipStatus`](https://github.com/iRobotEducation/irobot_create_msgs/blob/rolling/msg/SlipStatus.msg).
56 | We denote by "slippage" a loss of efficiency in the wheels.
57 | This is usually caused by losing traction between the wheels and the ground with the results that the motion detected by the wheels encoders is greater than what the robot actually performed.
58 |
59 | We fuse together various sensors in order to compute a boolean estimate of whether the robot is slipping or not and we periodically publish it on the `slip_status` topic.
60 | If you are developing your own state estimation algorithm using the wheels encoders, then it is recommended to inflate the differential motion covariance matrix to take this problem into account.
61 |
62 | Note that the optical mouse sensor is not affected by slippage.
63 | This topic publishes at 20 Hz.
64 |
65 | ### The `stop_status` topic
66 |
67 | The `stop_status` topic produces messages of type [`irobot_create_msgs/msg/StopStatus`](https://github.com/iRobotEducation/irobot_create_msgs/blob/rolling/msg/StopStatus.msg).
68 | The Create® 3 robot will periodically publish a boolean estimate of whether it is currently moving or not on the `stop_status` topic.
69 | This topic publishes at 1 Hz.
70 |
71 | [^1]: All trademarks mentioned are the property of their respective owners.
72 |
--------------------------------------------------------------------------------
/docs/api/reflexes.md:
--------------------------------------------------------------------------------
1 | # Reflexes
2 |
3 | With the word "reflex" we denote a set of autonomous reactive behaviors that the Create® 3 robot will trigger when it detects obstacles or hazards.
4 |
5 | Reflexes are high-priority behaviors and will temporarily override any user-provided command for their short duration.
6 |
7 | Reflexes can be enabled or disabled on the Create® 3 using the corresponding ROS 2[^1] parameters exposed by the `motion_control` ROS 2 node.
8 |
9 | ## Reflex parameters
10 |
11 | The `reflexes_enabled` parameter controls whether reflexes should be executed or not. It accepts boolean values.
12 | When this parameter is set to `false`, no reflexes will be enabled, regardless of their specific parameters values.
13 |
14 | This parameter is set to true by default, so reflexes are generally enabled, but note that individual reflexes can be enabled or disabled via their specific parameters described below.
15 |
16 | ### Bumps reflex
17 |
18 | The `reflexes.REFLEX_BUMP` ROS 2 parameter enables (`true`) or disables (`false`) the bump reflex.
19 | It will trigger as soon as the robot bumps into an obstacle and it will move the robot away from it.
20 | The reflex will continue until the robot has cleared the bump.
21 |
22 | This reflex is enabled by default.
23 |
24 | ### Cliffs reflex
25 |
26 | The `reflexes.REFLEX_CLIFF` ROS 2 parameter enables (`true`) or disables (`false`) the cliff reflex.
27 | It will trigger as soon as the robot detects a cliff and it will move the robot away from it.
28 | The reflex will continue until the robot has cleared the cliff.
29 |
30 | This reflex is enabled by default.
31 |
32 | ### Dock avoidance reflex
33 |
34 | The `reflexes.REFLEX_DOCK_AVOID` ROS 2 parameter enables (`true`) or disables (`false`) the dock avoidance reflex.
35 | It will trigger as soon as the robot gets close to the dock and tries to move towards it.
36 | The reflex will stop forward movements.
37 |
38 | This reflex is disabled by default.
39 |
40 | ### Gyro calibration reflex
41 |
42 | The `reflexes.REFLEX_GYRO_CAL` ROS 2 parameter enables (`true`) or disables (`false`) the gyro calibration reflex.
43 | It will trigger while the robot is stationary and will try to recalibrate the internal gyroscope.
44 |
45 | This reflex is enabled by default.
46 |
47 | ### Panic reflex
48 |
49 | The `reflexes.REFLEX_PANIC` ROS 2 parameter enables (`true`) or disables (`false`) the panic reflex.
50 | It will trigger when the robot is trapped and unable to clear obstacles or hazards.
51 | The reflex will try more aggressive maneuvers to allow the robot to recover from this situation
52 |
53 | This reflex is enabled by default.
54 |
55 | ### Proximity slowdown reflex
56 |
57 | The `reflexes.REFLEX_PROXIMITY_SLOWDOWN` ROS 2 parameter enables (`true`) or disables (`false`) the proximity slowdown reflex.
58 | It will trigger when the robot's IR sensors detect an obstacle in close proximity.
59 | The reflex will reduce the robot movement speed in order to better prepare for an eventual impact.
60 |
61 | This reflex is enabled by default.
62 |
63 | ### Stuck reflex
64 |
65 | The `reflexes.REFLEX_STUCK` ROS 2 parameter enables (`true`) or disables (`false`) the stuck reflex.
66 | It will trigger when the robot is stuck, i.e. it's pushing against an obstacle and its wheels are losing traction.
67 | The reflex will try aggressive maneuvers to allow the robot to recover from this situation
68 |
69 | This reflex is enabled by default.
70 |
71 | ### Virtual Wall reflex
72 |
73 | The `reflexes.REFLEX_VIRTUAL_WALL` ROS 2 parameter enables (`true`) or disables (`false`) the virtual wall reflex.
74 | It will trigger as soon as the robot detects an iRobot virtual wall it will move the robot away from it.
75 | The reflex will continue until the robot has cleared the virtual wall.
76 |
77 | This reflex is enabled by default.
78 |
79 | ### Wheel drop reflex
80 |
81 | The `reflexes.REFLEX_WHEEL_DROP` ROS 2 parameter enables (`true`) or disables (`false`) the wheel drop reflex.
82 | It will trigger as soon as the robot detects that one of its wheels is fully extended (dropped).
83 | The robot will drive the other wheel in order to return to a flat surface.
84 |
85 | This reflex is enabled by default.
86 |
87 | [^1]: ROS 2 is governed by Open Robotics
88 | [^2]: All trademarks mentioned are the property of their respective owners.
89 |
--------------------------------------------------------------------------------
/docs/api/ui.md:
--------------------------------------------------------------------------------
1 | # User Interface
2 |
3 | The Create® 3 robot can interact with the user through its buttons and its light ring.
4 |
5 | ### Responding to button presses
6 |
7 | Whenever a button on the Create® 3 robot is pressed, its information will be published on the `interface_buttons` topic.
8 | By subscribing to this topic, you will be able to detect when to start your custom policies.
9 |
10 | ### Changing the light ring colors
11 |
12 | !!! attention
13 | **The Create® 3 robot uses its light ring to notify the user about critical events. If you override its color, you may not notice these events.**
14 |
15 | You can change the color of the light ring on your Create® 3 robot by publishing a corresponding message on the `cmd_lightring` topic.
16 |
17 | ```bash
18 | ros2 topic pub /cmd_lightring irobot_create_msgs/msg/LightringLeds "{override_system: true, leds: [{red: 255, green: 0, blue: 0}, {red: 0, green: 255, blue: 0}, {red: 0, green: 0, blue: 255}, {red: 255, green: 255, blue: 0}, {red: 255, green: 0, blue: 255}, {red: 0, green: 255, blue: 255}]}"
19 | ```
20 |
21 | The easiest way to return lights to the default color (and relinquish their control to the robot) is to publish an empty message on the topic.
22 |
23 | ```bash
24 | ros2 topic pub /cmd_lightring irobot_create_msgs/msg/LightringLeds "{}"
25 | ```
26 |
27 | Additionally, an action server named `led_animation` can take Blink or Spin animation goals to execute a pattern for a fixed duration.
28 | See [LedAnimation.action](https://github.com/iRobotEducation/irobot_create_msgs/blob/main/action/LedAnimation.action).
29 |
30 |
31 | For example you can run the following:
32 |
33 | ```bash
34 | ros2 action send_goal led_animation irobot_create_msgs/action/LedAnimation "{animation_type: 1, lightring: {leds: [{red: 255, green: 0, blue: 0}, {red: 0, green: 255, blue: 0}, {red: 0, green: 0, blue: 255}, {red: 255, green: 255, blue: 0}, {red: 255, green: 0, blue: 255}, {red: 0, green: 255, blue: 255}], override_system: true},max_runtime: {sec: 500, nanosec: 0}}"
35 | ```
36 |
37 | ### Playing sound through the speakers
38 |
39 | You can play sound out of your Create® 3 robot speakers by publishing a corresponding message on the `cmd_audio` topic.
40 |
41 |
42 | !!!important
43 | A `best-effort` publisher will not be able to communicate with this subscription as of G.4.4 / H.1.1 as its QOS has been changed to `reliable` from `best-effort`. See [this compatibilty matrix](https://docs.ros.org/en/rolling/Concepts/About-Quality-of-Service-Settings.html#qos-compatibilities) for details.
44 |
45 | ```bash
46 | ros2 topic pub --once /cmd_audio irobot_create_msgs/msg/AudioNoteVector "{append: false, notes: [{frequency: 100, max_runtime: {sec: 1,nanosec: 0}}, {frequency: 50, max_runtime: {sec: 1,nanosec: 0}}]}"
47 | ```
48 |
49 | This example command will play 2 notes at the given frequencies back to back with the given 1 second length for each note.
50 |
51 | `append` is used to dictate the policy if an audio sequence is already playing when a new value comes in on the topic.
52 |
53 | * `append: true` tells the sound manager to play this audio sequence after the current sequence finishes playing.
54 | * `append: false` tell the sound manager to override any currently playing sequence with the new sequence.
55 |
56 | Publishing an empty `notes` vector with `append: false` will stop any currently playing audio sequences.
57 |
58 | Additionally, an action server named `audio_note_sequence` can take an AudioNoteVector and a number of iterations to play it.
59 | See [AudioNoteSequence.action](https://github.com/iRobotEducation/irobot_create_msgs/blob/main/action/AudioNoteSequence.action).
60 |
61 | The action goal will succeed when the sequence has finished playing so you can coordinate audio runtime with other actions.
62 | If you set iterations to -1, it will play until it is canceled.
63 |
64 | For example you can run the following:
65 |
66 | ```bash
67 | ros2 action send_goal /audio_note_sequence irobot_create_msgs/action/AudioNoteSequence "{iterations: 3,note_sequence:{append: false, notes: [{frequency: 100, max_runtime: {sec: 1,nanosec: 0}}, {frequency: 50, max_runtime: {sec: 1,nanosec: 0}}]}}"
68 | ```
69 |
70 | [^1]: ROS 2 is governed by Open Robotics
71 | [^2]: All trademarks mentioned are the property of their respective owners.
72 |
--------------------------------------------------------------------------------
/docs/api/wall-follow.md:
--------------------------------------------------------------------------------
1 | # Create® 3 Wall Follow
2 |
3 | The Create® 3 robot exposes a ROS 2[^1] action server to invoke a wall-following behavior.
4 |
5 | You can command the robot to follow along an obstacle using the following ROS 2 action.
6 |
7 | ```sh
8 | ros2 action send_goal /wall_follow irobot_create_msgs/action/WallFollow "{follow_side: 1, max_runtime: {sec: 1, nanosec: 0}}"
9 | ```
10 |
11 | When this behavior is requested, the robot will try to engage with nearby obstacles and, after a successful engagement, it will start following the obstacle along the specified side until the maximum runtime is reached.
12 |
13 | The `follow_side` can be specified as left (1) or right (-1) see the [action interface](https://github.com/iRobotEducation/irobot_create_msgs/blob/main/action/WallFollow.action) for the implementation.
14 |
15 | The robot will use a spiraling motion to try to engage with the obstacles.
16 | The spiral will be clockwise if `follow_side` is left (1) or counter-clockwise if `follow_side` is right (-1).
17 |
18 | !!! attention
19 | **If your Create® 3 robot has additional equipment mounted on top, you need to ensure that the obstacles being followed have enough vertical clearance. **
20 |
21 | This behavior won't take into account the potentially increased height of the robot, so it may get stuck and damage your equipment or furniture.
22 | If the obstacles you are trying to follow have gaps from the ground or low-hanging parts, it's required that the vertical clearance is either lower than the robot's base height (roughly 12 cm), such that the robot won't try to get underneath, or higher than the height of the robot, so that it will fully fit.
23 |
24 | [^1]: ROS 2 is governed by Open Robotics
25 | [^2]: All trademarks mentioned are the property of their respective owners.
26 |
--------------------------------------------------------------------------------
/docs/assets/irobot_symbol_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/assets/irobot_symbol_green.png
--------------------------------------------------------------------------------
/docs/assets/irobot_symbol_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/assets/irobot_symbol_white.png
--------------------------------------------------------------------------------
/docs/examples/create3_examples.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Examples
2 |
3 | The [create3_examples](https://github.com/iRobotEducation/create3_examples) Github repository contains examples of C++ and Python applications that can be used to control a Create® 3 robot with ROS 2[^1] and develop your navigation application.
4 |
5 | [^1]: ROS 2 is governed by Open Robotics
6 | [^2]: All trademarks mentioned are the property of their respective owners.
7 |
--------------------------------------------------------------------------------
/docs/examples/data/create3_lidar_rviz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/examples/data/create3_lidar_rviz.png
--------------------------------------------------------------------------------
/docs/examples/data/create3_lidar_top.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/examples/data/create3_lidar_top.jpg
--------------------------------------------------------------------------------
/docs/examples/driving-cli.md:
--------------------------------------------------------------------------------
1 | [This page has been moved.](../examples/actuators-cli.md#driving)
--------------------------------------------------------------------------------
/docs/examples/sensors-cli.md:
--------------------------------------------------------------------------------
1 | # Sensors via ROS 2 Command Line
2 |
3 | This page describes how to read the the Create® 3 robot's sensors using the ROS 2[^1] command line tools.
4 |
5 | ## Overview
6 | Reading the robot's sensors is as simple as
7 | ```sh
8 | ros2 topic echo {topic}
9 | ```
10 | where {topic} is the topic of interest. If you're not sure what topics are available, you can type
11 | ```sh
12 | ros2 topic list --no-daemon --spin-time 10
13 | ```
14 | The --no-daemon and --spin-time arguments are not strictly necessary, but they may help with initial discovery.
15 |
16 | A detailed API description for each sensor can be found [here](../../api/ros2/).
17 |
18 | ## A non-exhaustive set of examples
19 | These are relatively straighforward, but for fun:
20 |
21 | ### Battery State
22 | ```sh
23 | ros2 topic echo /battery_state
24 | ```
25 |
26 | ### Buttons
27 | ```sh
28 | ros2 topic echo /interface_buttons
29 | ```
30 |
31 | ### Docking State
32 |
33 | ##### Galactic
34 | ```sh
35 | ros2 topic echo /dock
36 | ```
37 | ##### Humble
38 | ```sh
39 | ros2 topic echo /dock_status
40 | ```
41 |
42 |
43 | ### IR Docking Sensor
44 | ```sh
45 | ros2 topic echo /ir_opcode
46 | ```
47 |
48 | ### IR Proximity Sensors
49 | ```sh
50 | ros2 topic echo /ir_intensity
51 | ```
52 |
53 | ### Wheel Odometry
54 | ```sh
55 | ros2 topic echo /odom
56 | ```
57 |
58 | ### Wheel Status (includes PWM and current)
59 | ```sh
60 | ros2 topic echo /wheel_status
61 | ```
62 |
63 | [^1]: ROS 2 is governed by Open Robotics
64 | [^2]: All trademarks mentioned are the property of their respective owners.
65 |
--------------------------------------------------------------------------------
/docs/faq/data/Create-3_Product-Information-Guide.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/Create-3_Product-Information-Guide.pdf
--------------------------------------------------------------------------------
/docs/faq/data/buttons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/buttons.png
--------------------------------------------------------------------------------
/docs/faq/data/faceplate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/faceplate.png
--------------------------------------------------------------------------------
/docs/faq/data/power-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/power-1.png
--------------------------------------------------------------------------------
/docs/faq/data/power-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/power-2.png
--------------------------------------------------------------------------------
/docs/faq/data/power-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/power-3.png
--------------------------------------------------------------------------------
/docs/faq/data/setup-1-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/setup-1-1.png
--------------------------------------------------------------------------------
/docs/faq/data/setup-1-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/setup-1-2.png
--------------------------------------------------------------------------------
/docs/faq/data/setup-2-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/setup-2-1.png
--------------------------------------------------------------------------------
/docs/faq/data/setup-2-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/setup-2-2.png
--------------------------------------------------------------------------------
/docs/faq/data/setup-2-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/setup-2-3.png
--------------------------------------------------------------------------------
/docs/faq/data/setup-2-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/setup-2-4.png
--------------------------------------------------------------------------------
/docs/faq/data/setup-2-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/setup-2-5.png
--------------------------------------------------------------------------------
/docs/faq/data/setup-3-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/setup-3-1.png
--------------------------------------------------------------------------------
/docs/faq/data/setup-3-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/setup-3-2.png
--------------------------------------------------------------------------------
/docs/faq/data/setup-3-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/setup-3-3.png
--------------------------------------------------------------------------------
/docs/faq/data/setup-3-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/setup-3-4.png
--------------------------------------------------------------------------------
/docs/faq/data/setup-3-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/faq/data/setup-3-5.png
--------------------------------------------------------------------------------
/docs/hw/adapter.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Adapter Board
2 | ## Overview
3 | The iRobot® Create® 3 robot[^1] has two electrical connections exposed via the Adapter Board.
4 | The connections are accessible within the robot once the cargo bay is removed.
5 | The Adapter Board is also visible through the top cover of the robot, where its indicators are visible, and the USB/BLE toggle can be switched.
6 |
7 | 
8 |
9 | ## Power Connections
10 | ### Unregulated Battery Port
11 | The **unregulated battery port** is a JST XH-style connector, with pin 1 as the positive terminal of the battery, and pin 2 as the negative terminal.
12 | These terminals are labeled on the bottom side of the board and are visible with the robot on its back and the cargo bay removed.
13 | The board is capable of supplying a **maximum of 2 A** of current at the current battery voltage (14.4 V nominal, 12 V min, 16.8 V max), enforced by a PTC resettable fuse in the robot.
14 | This port is always on when the battery is powered on.
15 | !!! attention "Notice"
16 | Do not back-feed power into the robot through this port, and do not attempt to use the robot without its battery installed.
17 |
18 | ### USB-C® Connector
19 | The **USB-C® connector**[^2] provides a USB 2.0 Host connection into the robot with 5.13 V at 3.0 A provided to power downstream connections.
20 | The power is disabled on this port unless a proper USB-C® downstream device is connected.
21 | The 5 V source powering this port is not guaranteed to stay enabled when the battery reports 0% state of charge (below 12.0 V).
22 | The USB data connection is made only when the USB/BLE toggle switch plunger is slid toward the USB icon.
23 |
24 | ### Total Power Output
25 | The USB-C® port draws its power from the unregulated battery connection which, as mentioned above, is limited to 2 A at the battery voltage.
26 | This means there is only around 28.8 W total power shared between both power outputs (assuming the battery is at 14.4 V).
27 | If power is drawn through the USB-C® connector, then less power is available through the unregulated battery port and vice versa.
28 | !!! example
29 | As an example, if a full 5 V @ 3 A are drawn from the USB-C® port, the battery is currently measuring 14.4 V, and the switching regulator is 90% efficient, then a maximum of 0.84 A[^3] can be drawn from the unregulated battery port before the resettable fuse will trip (and depending on ambient temperature, even more margin may be necessary).
30 |
31 | ## USB/BLE Toggle
32 | The **USB/BLE toggle** routes the robot's single USB Host connection either to the USB-C® port (useful for connecting to single-board computers with OTG or device ports) or to the on-board Bluetooth® Low Energy[^4] module.
33 | This module can be used to interact with the [iRobot Education Python Web Playground](https://python.irobot.com/) or any other application supporting the iRobot Education Bluetooth® protocol.
34 |
35 | ## Indicators
36 | ### Orange Indicator
37 | The **orange indicator (D3)** is illuminated when the USB-C® port is powering a downstream device, whether or not a data connection is being made.
38 |
39 | ### Yellow Indicator
40 | The **yellow indicator (D2)** is illuminated when the robot's internal 5 V bus is enabled. There is a hardware error if this LED is extinguished while the green indicator is illuminated.
41 |
42 | ### Green Indicator
43 | The **green indicator (D300)** is illuminated when the robot's battery is switched on.
44 |
45 | ### Blue Indicator
46 | The **blue indicator (D6)** is illuminated when the BLE radio is turned on. It flashes when it is connected to a host.
47 |
48 | [^1]: iRobot® and Create® are registered trademarks of iRobot Corporation.
49 | [^2]: USB-C® is a trademark of USB Implementers Forum.
50 | [^3]: Maximum current computed as: 2 A - (5 V * 3 A / 0.90 / 14.4 V) = 0.84 A
51 | [^4]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
52 | [^5]: All other trademarks mentioned are the property of their respective owners.
53 |
--------------------------------------------------------------------------------
/docs/hw/data/3d_model.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/3d_model.jpg
--------------------------------------------------------------------------------
/docs/hw/data/adapter_in.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/adapter_in.jpg
--------------------------------------------------------------------------------
/docs/hw/data/adapter_out.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/adapter_out.jpg
--------------------------------------------------------------------------------
/docs/hw/data/bottom.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/bottom.jpg
--------------------------------------------------------------------------------
/docs/hw/data/buttons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/buttons.png
--------------------------------------------------------------------------------
/docs/hw/data/cargo_bay_caster.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/cargo_bay_caster.png
--------------------------------------------------------------------------------
/docs/hw/data/caster_attachment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/caster_attachment.png
--------------------------------------------------------------------------------
/docs/hw/data/front_iso.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/front_iso.jpg
--------------------------------------------------------------------------------
/docs/hw/data/hookup_jetson_xavier_nx.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/hookup_jetson_xavier_nx.jpg
--------------------------------------------------------------------------------
/docs/hw/data/hookup_jetson_xavier_nx_on_c3_with_PC.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/hookup_jetson_xavier_nx_on_c3_with_PC.jpg
--------------------------------------------------------------------------------
/docs/hw/data/hookup_nano2gb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/hookup_nano2gb.jpg
--------------------------------------------------------------------------------
/docs/hw/data/hookup_navqplus_adapter_mount_bay.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/hookup_navqplus_adapter_mount_bay.jpg
--------------------------------------------------------------------------------
/docs/hw/data/hookup_navqplus_case_faceplate.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/hookup_navqplus_case_faceplate.jpg
--------------------------------------------------------------------------------
/docs/hw/data/hookup_pi3b.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/hookup_pi3b.jpg
--------------------------------------------------------------------------------
/docs/hw/data/hookup_pi4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/hookup_pi4.jpg
--------------------------------------------------------------------------------
/docs/hw/data/hookup_piZ.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/hookup_piZ.jpg
--------------------------------------------------------------------------------
/docs/hw/data/lightring/blue_spinning.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/blue_spinning.gif
--------------------------------------------------------------------------------
/docs/hw/data/lightring/blue_spinning.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/blue_spinning.jpg
--------------------------------------------------------------------------------
/docs/hw/data/lightring/boot.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/boot.gif
--------------------------------------------------------------------------------
/docs/hw/data/lightring/charged_spinning.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/charged_spinning.gif
--------------------------------------------------------------------------------
/docs/hw/data/lightring/cyan_solid.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/cyan_solid.jpg
--------------------------------------------------------------------------------
/docs/hw/data/lightring/cyan_spinning.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/cyan_spinning.gif
--------------------------------------------------------------------------------
/docs/hw/data/lightring/green_solid.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/green_solid.jpg
--------------------------------------------------------------------------------
/docs/hw/data/lightring/orange_half_solid.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/orange_half_solid.jpg
--------------------------------------------------------------------------------
/docs/hw/data/lightring/orange_pulsing.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/orange_pulsing.gif
--------------------------------------------------------------------------------
/docs/hw/data/lightring/orange_solid.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/orange_solid.jpg
--------------------------------------------------------------------------------
/docs/hw/data/lightring/purple_spinning.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/purple_spinning.gif
--------------------------------------------------------------------------------
/docs/hw/data/lightring/red_pulsing.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/red_pulsing.gif
--------------------------------------------------------------------------------
/docs/hw/data/lightring/red_solid.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/red_solid.jpg
--------------------------------------------------------------------------------
/docs/hw/data/lightring/red_spinning.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/red_spinning.gif
--------------------------------------------------------------------------------
/docs/hw/data/lightring/white_solid.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/white_solid.jpg
--------------------------------------------------------------------------------
/docs/hw/data/lightring/yellow-blue_solid.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/yellow-blue_solid.jpg
--------------------------------------------------------------------------------
/docs/hw/data/lightring/yellow-green_solid.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/yellow-green_solid.jpg
--------------------------------------------------------------------------------
/docs/hw/data/lightring/yellow-red_solid.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/yellow-red_solid.jpg
--------------------------------------------------------------------------------
/docs/hw/data/lightring/yellow-white_solid.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/yellow-white_solid.jpg
--------------------------------------------------------------------------------
/docs/hw/data/lightring/yellow_half_solid.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/yellow_half_solid.jpg
--------------------------------------------------------------------------------
/docs/hw/data/lightring/yellow_solid.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/lightring/yellow_solid.jpg
--------------------------------------------------------------------------------
/docs/hw/data/models/Caster/Cargo_Bay_with_Caster/C3-Cargo-Bay-With-Caster.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Caster/Cargo_Bay_with_Caster/C3-Cargo-Bay-With-Caster.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Caster/Cargo_Bay_with_Caster/C3-Cargo-Bay-With-Caster.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Caster/Cargo_Bay_with_Caster/C3-Cargo-Bay-With-Caster.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Caster/Caster_Lock/C3-Caster-Lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Caster/Caster_Lock/C3-Caster-Lock.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Caster/Caster_Lock/C3-Caster-Lock.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Caster/Caster_Lock/C3-Caster-Lock.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Caster/Rear_Caster_Attachment/C3-Rear-Caster-Attachment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Caster/Rear_Caster_Attachment/C3-Rear-Caster-Attachment.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Caster/Rear_Caster_Attachment/C3-Rear-Caster-Attachment.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Caster/Rear_Caster_Attachment/C3-Rear-Caster-Attachment.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Caster/Rear_Caster_Attachment_Latch/C3-Rear-Caster-Attachment-Latch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Caster/Rear_Caster_Attachment_Latch/C3-Rear-Caster-Attachment-Latch.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Caster/Rear_Caster_Attachment_Latch/C3-Rear-Caster-Attachment-Latch.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Caster/Rear_Caster_Attachment_Latch/C3-Rear-Caster-Attachment-Latch.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Compute/NVIDIA_Jetson/Mount_Bracket/C3-JetsonXavierNX-Mount.3mf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Compute/NVIDIA_Jetson/Mount_Bracket/C3-JetsonXavierNX-Mount.3mf
--------------------------------------------------------------------------------
/docs/hw/data/models/Compute/NVIDIA_Jetson/Mount_Bracket/C3-JetsonXavierNX-Mount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Compute/NVIDIA_Jetson/Mount_Bracket/C3-JetsonXavierNX-Mount.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Compute/NVIDIA_Jetson/Mount_Bracket/C3-JetsonXavierNX-Mount.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Compute/NVIDIA_Jetson/Mount_Bracket/C3-JetsonXavierNX-Mount.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Compute/NVIDIA_Jetson/Mount_Bracket/C3-JetsonXavierNX-Mount_slice-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Compute/NVIDIA_Jetson/Mount_Bracket/C3-JetsonXavierNX-Mount_slice-example.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Compute/NavQPlus_by_NXP/Adapter_Plate/C3-RudisLabs-NavQPlus-Adapter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Compute/NavQPlus_by_NXP/Adapter_Plate/C3-RudisLabs-NavQPlus-Adapter.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Compute/NavQPlus_by_NXP/Adapter_Plate/C3-RudisLabs-NavQPlus-Adapter.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Compute/NavQPlus_by_NXP/Adapter_Plate/C3-RudisLabs-NavQPlus-Adapter.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Compute/NavQPlus_by_NXP/Case_Base/C3-NavQPlus-Base.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Compute/NavQPlus_by_NXP/Case_Base/C3-NavQPlus-Base.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Compute/NavQPlus_by_NXP/Case_Base/C3-NavQPlus-Base.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Compute/NavQPlus_by_NXP/Case_Base/C3-NavQPlus-Base.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Compute/NavQPlus_by_NXP/Case_Top/C3-NavQPlus-Top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Compute/NavQPlus_by_NXP/Case_Top/C3-NavQPlus-Top.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Compute/NavQPlus_by_NXP/Case_Top/C3-NavQPlus-Top.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Compute/NavQPlus_by_NXP/Case_Top/C3-NavQPlus-Top.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Compute/Raspberry_Pi/Large_Mount/C3-RPi-Mount-20211022.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Compute/Raspberry_Pi/Large_Mount/C3-RPi-Mount-20211022.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Compute/Raspberry_Pi/Large_Mount/C3-RPi-Mount-20211022.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Compute/Raspberry_Pi/Large_Mount/C3-RPi-Mount-20211022.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Compute/Raspberry_Pi/Small_Mount/C3-RPi-Mount-Small-20211022.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Compute/Raspberry_Pi/Small_Mount/C3-RPi-Mount-Small-20211022.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Compute/Raspberry_Pi/Small_Mount/C3-RPi-Mount-Small-20211022.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Compute/Raspberry_Pi/Small_Mount/C3-RPi-Mount-Small-20211022.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Generic/Bolt_Post_Mount/C3-RudisLabs-Threaded-1_4-20UNC-post-mount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Generic/Bolt_Post_Mount/C3-RudisLabs-Threaded-1_4-20UNC-post-mount.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Generic/Bolt_Post_Mount/C3-RudisLabs-Threaded-1_4-20UNC-post-mount.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Generic/Bolt_Post_Mount/C3-RudisLabs-Threaded-1_4-20UNC-post-mount.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Generic/Bolt_Post_Mount/details.txt:
--------------------------------------------------------------------------------
1 | Mount uses a 1/4-20 UNC bolt and can be used with any 1/4-20 threaded camera or sensor.
--------------------------------------------------------------------------------
/docs/hw/data/models/Generic/Stud_Mount/C3-Stud-Mount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Generic/Stud_Mount/C3-Stud-Mount.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Generic/Stud_Mount/C3-Stud-Mount.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Generic/Stud_Mount/C3-Stud-Mount.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Sensors/IntelRealSense/D435_Mount/C3-RealSense-D435-Mount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Sensors/IntelRealSense/D435_Mount/C3-RealSense-D435-Mount.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Sensors/IntelRealSense/D435_Mount/C3-RealSense-D435-Mount.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Sensors/IntelRealSense/D435_Mount/C3-RealSense-D435-Mount.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Sensors/Luxonis/Oak-D_Lite_Mount/C3-OAK-D-Lite-Mount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Sensors/Luxonis/Oak-D_Lite_Mount/C3-OAK-D-Lite-Mount.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Sensors/Luxonis/Oak-D_Lite_Mount/C3-OAK-D-Lite-Mount.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Sensors/Luxonis/Oak-D_Lite_Mount/C3-OAK-D-Lite-Mount.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Sensors/Luxonis/Oak-D_Mount/C3-OAK-D-Mount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Sensors/Luxonis/Oak-D_Mount/C3-OAK-D-Mount.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Sensors/Luxonis/Oak-D_Mount/C3-OAK-D-Mount.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Sensors/Luxonis/Oak-D_Mount/C3-OAK-D-Mount.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Sensors/SLAMTEC/RPLIDAR_A1_Minimal_Mount/C3-RudisLabs-Minimal-RPLIDAR-A1M8-Adapter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Sensors/SLAMTEC/RPLIDAR_A1_Minimal_Mount/C3-RudisLabs-Minimal-RPLIDAR-A1M8-Adapter.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Sensors/SLAMTEC/RPLIDAR_A1_Minimal_Mount/C3-RudisLabs-Minimal-RPLIDAR-A1M8-Adapter.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Sensors/SLAMTEC/RPLIDAR_A1_Minimal_Mount/C3-RudisLabs-Minimal-RPLIDAR-A1M8-Adapter.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Sensors/SLAMTEC/RPLIDAR_A1_Mount/C3-RPLidar-A1-Mount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Sensors/SLAMTEC/RPLIDAR_A1_Mount/C3-RPLidar-A1-Mount.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Sensors/SLAMTEC/RPLIDAR_A1_Mount/C3-RPLidar-A1-Mount.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Sensors/SLAMTEC/RPLIDAR_A1_Mount/C3-RPLidar-A1-Mount.stl
--------------------------------------------------------------------------------
/docs/hw/data/models/Sensors/SLAMTEC/RPLIDAR_A1_USB_Mount/C3-RPLidar-A1-USB-Mount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Sensors/SLAMTEC/RPLIDAR_A1_USB_Mount/C3-RPLidar-A1-USB-Mount.png
--------------------------------------------------------------------------------
/docs/hw/data/models/Sensors/SLAMTEC/RPLIDAR_A1_USB_Mount/C3-RPLidar-A1-USB-Mount.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/models/Sensors/SLAMTEC/RPLIDAR_A1_USB_Mount/C3-RPLidar-A1-USB-Mount.stl
--------------------------------------------------------------------------------
/docs/hw/data/navqplus_case_sensors.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/navqplus_case_sensors.jpg
--------------------------------------------------------------------------------
/docs/hw/data/rear_iso.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/hw/data/rear_iso.jpg
--------------------------------------------------------------------------------
/docs/hw/electrical.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Electrical System
2 |
3 | ## Robot Battery
4 | The iRobot® Create® 3 robot uses a standard [Lithium Ion Battery for Roomba® e & i series](https://store.irobot.com/default/parts-and-accessories/roomba-batteries/) robots.
5 | The battery shipping with the robot is a 26 Wh, 4S Lithium Ion smart battery pack, with a nominal voltage of 14.4 V (12 V min, 16.8 V max).
6 | It will report a 0% state of charge when the total voltage of the pack reaches 12.0 V.
7 | It will self-protect and disconnect from any load at 10.8 V or lower.
8 |
9 | !!! warning "Notice"
10 | If the robot is approaching a 0% state of charge and the user application does not believe it will make it to the dock, the robot should be powered down using the [`/robot_power` service](../../examples/actuators-cli/#robot-power).
11 | It is recommended to return to the dock at or below about 10% state of charge in order to prevent the robot from being stranded without power.
12 |
13 |
14 | !!! info
15 | As of software version G.5.4 (Galactic) and H.2.4 (Humble), the Create 3 robot will interally call the `/robot_power` service once the battery's state of charge dips below 2% in order to reduce the risk of tripping the battery's self-protection limits.
16 |
17 | If the battery self-protects, its internal management system may refuse to charge until it is reset.
18 | Resetting the battery is accomplished by removing the battery from the robot for at least fifteen minutes, at which point it should be reinstalled in the robot and the robot placed on the charger.
19 |
20 |
21 | !!! info
22 | When not overridden, the robot's light ring will flash red to indicate low battery state, at about 10% state of charge. It is recommended not to run the robot for extended periods of time in this state.
23 |
24 | Charge the battery by placing Create® 3 on the included iRobot® Home Base™ Charging Station.
25 | The light ring will show the state of charge and animate while the battery is charging.
26 | The battery will self-protect and disable the ability to charge if it charges continuously for four hours without reaching 100% state of charge.
27 |
28 | !!! danger "Notice"
29 | Always remove the Create® 3 robot’s battery prior to dismantling, adjusting, altering, or affecting the robot’s chassis at the risk of damaging the battery, robot, or both.
30 | Do not attempt to use the robot without its battery installed.
31 |
32 | !!! tip
33 | Keep the robot on the Home Base™ charging station (or power down the robot by holding down the power button for 10 seconds) when not in use to prevent the battery from discharging.
34 |
35 | ## Buttons and Light Ring Overview
36 | The iRobot® Create® 3 has three buttons on its top face.
37 | The center button is marked with a power icon, while the flanking buttons are marked with one or two dots.
38 | The center button also contains a ring of six RGB LEDs.
39 | [Detailed information about the use of these buttons and LEDs can be found here.](../hw/face.md)
40 |
41 | ## Adapter Board Overview
42 | The iRobot® Create® 3 robot exposes connections and some status indicators via the Adapter Board.
43 | The Adapter Board also adds a Bluetooth® Low Energy[^1] interface to the core robot.
44 | [Detailed information on the Adapter Board can be found here.](../hw/adapter.md)
45 |
46 | [^1]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
47 | [^2]: All other trademarks mentioned are the property of their respective owners.
48 |
--------------------------------------------------------------------------------
/docs/hw/hookup.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Hardware Hookup Overview
2 | The Create® 3 robot is based on the Roomba®, a robot vacuum cleaner.
3 | Its sensors, actuators, and compact design are capable of navigating and mapping a the whole floor of a home or office space.
4 | The robot also ships with an iRobot® Home Base™ Charging Station.
5 |
6 | It is possible to directly connect various single board computers to the Create 3 robot in order to provide on-board intelligence. Here are a few examples.
7 |
8 | ## Currently documented hookup examples:
9 |
10 | ### NavQ+ by NXP®
11 | * [NavQ+ by NXP Hookup Guide](../navqplus_hookup/)
12 |
13 | ### NVIDIA® Jetson™
14 | * [NVIDIA® Jetson™ Hookup Guide](../jetson_hookup/) [^1]
15 |
16 | ### Raspberry Pi®
17 | * [Raspberry Pi® Hookup Guide](../rpi_hookup/) [^2]
18 |
19 |
20 |
21 | [^1]: NVIDIA and Jetson are trademarks or registered trademarks of NVIDIA Corporation.
22 | [^2]: Raspberry Pi® is a trademark of Raspberry Pi Trading.
23 | [^3]: All other trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/hw/navqplus_hookup.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Hookup Guide for NavQPlus by NXP®
2 |
3 | !!! important
4 | **This is community-submitted content. Please feel welcome to submit PRs for additions or corrections.**
5 |
6 | The iRobot® Create® 3 robot has a USB-C®[^1] connector implementing a USB 2.0 host capable of 5 V @ 3 A continuous, which can be used to power and communicate with various downstream devices.
7 |
8 | NavQPlus is an open source reference design provided by NXP® and manufacturable by anyone.
9 | Since NavQPlus has USB-C® ports capable of being configured as a USB Ethernet Gadget, a cable with a USB-C® connector on both ends is all that is required.
10 |
11 | !!! note
12 | - Unless set otherwise, the default USB-C® port for use as an Ethernet Gadget device is configured to only the centermost USB-C® port (labeled USB 2) as shown in the example pictures.
13 |
14 | The NavQPlus is pictured in the cargo bay using the 3D-printed [adapter](../print_compute/#adapter-plate) plate and on top of the faceplate using the 3D-printed [case](../print_compute/#navqplus-by-nxp).
15 | 
16 | 
17 |
18 |
19 | ## Printable Case
20 | The [NavQPlus has a printable case](../print_compute/#navqplus-by-nxp) specifically designed for use with the Create® 3, allowing for it to be mounted to the faceplate or cargo bay.
21 | The [base](../print_compute/#case-base) of the case attaches to the NavQPlus using the existing four (4) M2.5-0.45 x 12mm System On Module (SOM) mounting screws.
22 |
23 | !!! note
24 | - The [top](../print_compute/#case-top) case is designed to be fastened together to the [base](../print_compute/#case-base) of the case with four (4) M3-0.5 x 10mm screws if not mounted to a Create® 3 plate or M3-0.5 x 12mm if mounted; cap head is suggested.
25 | - For best results, it is suggested to tap/thread the M3-0.5 on the [top](../print_compute/#case-top) case and M2.5-0.45 (SOM) holes on the [base](../print_compute/#case-base) case.
26 |
27 |
28 | Setup showing faceplate mounted case and printable [minimal lidar](../print_sensor_mounts/#rplidar-a1-minimal-mount) and camera [bolt post](../print_generic/#bolt-post-mount) mounts.
29 | 
30 |
31 |
32 | ## Printable Adapter
33 | If a more minimal mount is desired instead of a case, an [adapter plate](../print_compute/#adapter-plate) using the existing SOM mounting screws for fastening is also provided.
34 |
35 | !!! note
36 | - This [adapter](../print_compute/#adapter-plate) is designed to be fastened to the Create® 3 plate with four (4) M3-0.5 x 6mm screws; cap head is suggested.
37 | - For best results, it is suggested to tap/thread the M3-0.5 (Create® 3 mounting) and M2.5-0.45 (SOM) holes.
38 |
39 |
40 | [^1]: USB-C® is a trademark of USB Implementers Forum.
41 | [^2]: All other trademarks mentioned are the property of their respective owners.
42 |
--------------------------------------------------------------------------------
/docs/hw/overview.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Hardware Overview
2 | The Create® 3 is based on the Roomba®, a robot vacuum cleaner.
3 | Its sensors, actuators, and compact design are capable of navigating and mapping a the whole floor of a home or office space.
4 | The robot also ships with an iRobot® Home Base™ Charging Station.
5 |
6 | 
7 | The front of the robot features a multizone bumper with seven pairs of IR proximity sensors, which can be used to detect obstacles.
8 | The top of the robot contains three buttons which can all be overloaded by a ROS 2 application (only the • and •• buttons can be overloaded using the iRobot Education Bluetooth®[^1] protocol.)
9 | The power button features a ring of six RGB LEDs for indication.
10 |
11 | 
12 | The faceplate and cargo bay of the robot feature a regular hole pattern for attaching payloads and can be removed without tools for quick prototyping.
13 | There are two cable passthroughs: one on the top edge of the cargo bay which is good for quick prototyping and one that penetrates the top cover and faceplate which is useful for keeping wires within the radius of the robot.
14 | More information on these features can be found on the [Mechanical](../mechanical/) page.
15 |
16 | Also visible with the faceplate removed is the adapter board, which is used to interface to external computers either through Bluetooth®[^1] or via USB-C®[^2].
17 | More information on this board is available on the [Electrical](../electrical/) page.
18 |
19 | 
20 | The bottom of the robot includes four cliff sensors to keep the robot on solid ground, a front caster (by default, the robot's center of gravity is forward of the center axis), charging contacts, two wheels with current sensors and encoders, and an optical odometry sensor.
21 | Not visible is the robot's IMU, which is used with the optical odometry sensor and wheel encoders to generate a fused odometry estimate.
22 |
23 | [^1]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
24 | [^2]: USB-C® is a trademark of USB Implementers Forum.
25 | [^3]: All other trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/hw/print_casters.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Printable Caster Parts
2 | {% set data = listfiles("docs/hw/data/models/Caster") %}
3 | !!! attention "Notice"
4 | This is an autogenerated page containing links to STLs suitable for attaching a rear caster to the iRobot® Create® 3 robot. For further information, see [here](../mechanical/#adding-a-rear-caster)
5 | {% for keys, file in data|dictsort %}
6 | ## {{ keys }}
7 | {% set full_path=file.path+'/'+file.name %}
8 | {% if check_generate(full_path|string()) %}
9 |  }} "{{ file.name|replace(file.extension, "") }}")
10 | {% endif %}
11 | {% if file.size_raw_kb|float() < render_size_limit|float() %}
12 |
13 | 3D-Rendering
14 |
15 |
16 |
17 |
18 | {% endif %}
19 |
20 |
21 |
22 | * [{{ keys }} STL ({{ file.size_str }})](../{{ file.path }}/{{ file.name }})
23 |
24 | {% endfor %}
25 |
26 |
27 |
28 |
29 | [^1]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/hw/print_compute.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Printable Compute Board Parts
2 | {% set data = listfiles("docs/hw/data/models/Compute") %}
3 | !!! attention "Notice"
4 | This is an autogenerated page containing links to STLs suitable for mounting various compute boards to the iRobot® Create® 3 regular mounting pattern.
5 | {% for key0, val0 in data|dictsort %}
6 | ## {{ key0|replace("NVIDIA", "NVIDIA®")|replace("Jetson", "Jetson™")|replace("Pi", "Pi®")|replace("NXP", "NXP®") }}
7 | {% for keys, file in val0|dictsort %}
8 | ### {{ keys }}
9 | {% set full_path=file.path+'/'+file.name %}
10 | {% if check_generate(full_path|string()) %}
11 |  }} "{{ file.name|replace(file.extension, "") }}")
12 | {% endif %}
13 | {% if file.size_raw_kb|float() < render_size_limit|float() %}
14 |
15 | 3D-Rendering
16 |
17 |
18 |
19 |
20 | {% endif %}
21 |
22 |
23 |
24 | * [{{ keys }} STL ({{ file.size_str }})](../{{ file.path }}/{{ file.name }})
25 |
26 | {% endfor %}
27 | {% endfor %}
28 |
29 |
30 |
31 |
32 |
33 | [^1]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/hw/print_generic.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Printable Generic Parts
2 | {% set data = listfiles("docs/hw/data/models/Generic") %}
3 | !!! attention "Notice"
4 | This is an autogenerated page containing links to STLs suitable for mounting miscellaneous things to the iRobot® Create® 3 regular mounting pattern.
5 | {% for keys, file in data|dictsort %}
6 | ## {{ keys }}
7 | {% set full_path=file.path+'/'+file.name %}
8 | {% if check_generate(full_path|string()) %}
9 |  }} "{{ file.name|replace(file.extension, "") }}")
10 | {% endif %}
11 | {% if file.size_raw_kb|float() < render_size_limit|float() %}
12 |
13 | 3D-Rendering
14 |
15 |
16 |
17 |
18 | {% endif %}
19 |
20 |
21 |
22 | * [{{ keys }} STL ({{ file.size_str }})](../{{ file.path }}/{{ file.name }})
23 |
24 | {% endfor %}
25 |
26 |
27 |
28 |
29 | [^1]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/hw/print_sensor_mounts.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Printable Sensor Mount Parts
2 | {% set data = listfiles("docs/hw/data/models/Sensors") %}
3 | !!! attention "Notice"
4 | This is an autogenerated page containing links to STLs suitable for mounting various sensors to the iRobot® Create® 3 regular mounting pattern.
5 | {% for key0, val0 in data|dictsort %}
6 | ## {{ key0|replace("IntelRealSense", "Intel® RealSense™")|replace("SLAMTEC", "SLAMTEC®")|replace("Luxonis", "Luxonis®") }}
7 | {% for keys, file in val0|dictsort %}
8 | ### {{ keys|replace("Oak-D", "Oak-D®") }}
9 | {% set full_path=file.path+'/'+file.name %}
10 | {% if check_generate(full_path|string()) %}
11 |  }} "{{ file.name|replace(file.extension, "") }}")
12 | {% endif %}
13 | {% if file.size_raw_kb|float() < render_size_limit|float() %}
14 |
15 | 3D-Rendering
16 |
17 |
18 |
19 |
20 | {% endif %}
21 |
22 |
23 |
24 | * [{{ keys|replace("Oak-D", "Oak-D®") }} STL ({{ file.size_str }})](../{{ file.path }}/{{ file.name }})
25 |
26 | {% endfor %}
27 | {% endfor %}
28 |
29 |
30 |
31 |
32 |
33 | [^1]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/hw/rpi_hookup.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Hookup Guide for Raspberry Pi®
2 |
3 | The iRobot® Create® 3 robot has a USB-C®[^1] connector implementing a USB 2.0 host capable of 5 V @ 3 A continuous, which can be used to power and communicate with various downstream devices.
4 | Here are some hookup examples for Raspberry Pi®[^2] computers.
5 |
6 | ## Raspberry Pi® 4
7 | Since the Raspberry Pi® 4 has a USB-C® port capable of an OTG connection, a cable with a USB-C® connector on both ends is all that is required.
8 | The Raspberry Pi® is pictured in the cargo bay with the [large mount](../print_compute/#large-mount), and the Adapter Board is removed from the robot for clarity.
9 | 
10 |
11 | ## Raspberry Pi® 1-3 Model B
12 | The original Raspberry Pi® through the Raspberry Pi® 3 do not have upstream (device) ports, so it's a little more difficult to connect and power them cleanly.
13 | We suggest using a USB-C® hub which includes an integrated USB to Ethernet adapter as the cleanest way to go.
14 | 
15 | It's also possible to power the Raspberry Pi® using the USB-C® port on the Adapter Board with the help of a downstream connection adapter like [this one](https://www.adafruit.com/product/4090) and make the data connection over Wi-Fi.
16 |
17 | ## Raspberry Pi® Zero
18 | This should be the same as the Raspberry Pi® 4.
19 | The Micro-USB connector labeled "USB" is an OTG port capable of being an Ethernet Gadget; use a USB Micro B to USB-C® cable to connect it directly to the robot's Adapter Board.
20 | 
21 |
22 | ## Raspberry Pi® Printable Mounts
23 | The Raspberry Pi® mounting scheme does not match Create® 3's faceplate or cargo bay hole pattern; here are two [3D-printable mounts](../print_compute/#raspberry-pi).
24 | The [larger mount](../print_compute/#large-mount) is more rigid but requires three times as much time to print in comparison to the [smaller mount](../print_compute/#small-mount).
25 |
26 |
27 | [^1]: USB-C® is a trademark of USB Implementers Forum.
28 | [^2]: Raspberry Pi® is a trademark of Raspberry Pi Trading.
29 | [^3]: All other trademarks mentioned are the property of their respective owners.
30 |
--------------------------------------------------------------------------------
/docs/index.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Educational Robot
2 |
3 |
4 |
9 |
10 |
11 | ## What is iRobot® Create® 3?
12 |
13 | iRobot® Create® 3 is an affordable, mobile robotics platform for educators, students, and developers.
14 |
15 | The robot has a full suite of on-board sensors and actuators which will allow you to develop and test your robotics algorithms.
16 |
17 | The software is entirely based on ROS 2: all sensors data are produced through ROS 2 publications while ROS 2 servers and subscriptions are used to control actuators and respond to users requests.
18 | The robot also provides some autonomous behaviors out of the box, such as docking, wall-follow and reactions to obstacles.
19 | All these can be triggered and/or configured through ROS 2 actions and parameters.
20 |
21 | Designed for beginner to advanced ROS 2 users, Create® 3 allows for a variety of programming methods.
22 | With Wi-fi and Bluetooth capability, Ethernet over USB connections, plus a removable faceplate for attaching payloads, you can start building with your Create® 3 right away.
23 |
24 | More detailed documentation can be accessed using the left navigation bar, or if it is collapsed, the ☰ menu in the top left corner of this page.
25 |
26 | ## Key internal docs links
27 |
28 | - [Hardware](hw/overview)
29 | - [ROS 2 API](api/ros2/)
30 | - [Software Releases](releases/overview)
31 | - [FAQ](faq/faq)
32 |
33 | ## Useful external links
34 |
35 | Here you can find additional content on the iRobot® Create® 3:
36 |
37 | - [Create® 3 Discussion Forum](https://github.com/iRobotEducation/create3_docs/discussions)
38 | - [Create® ROS 2 Messages Definitions](https://github.com/iRobotEducation/irobot_create_msgs)
39 | - [Create® 3 Gazebo Simulator](https://github.com/iRobotEducation/create3_sim)
40 | - [Create® 3 Examples](https://github.com/iRobotEducation/create3_examples)
41 |
--------------------------------------------------------------------------------
/docs/lessons/Create3-Welcome-Guide.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/Create3-Welcome-Guide.pdf
--------------------------------------------------------------------------------
/docs/lessons/getting-started.md:
--------------------------------------------------------------------------------
1 | # Getting Started with the Create® 3 Robot
2 | ## Details
3 | Use these resources to get started with Create® 3 Educational Robot, the next generation of iRobot’s affordable, trusted, all-in-one mobile robot development platform. Grasp the fundamentals of robotics, computer science, and engineering by programming the Create® 3 robot to perform simple behaviors, sounds, and movements, or tap into advanced applications including multi-robot exploration, navigation & mapping, and telepresence capabilities.
4 |
5 | * [Create 3 Getting Started Manual](./Create3-Welcome-Guide.pdf)
6 | * [Create 3 Discussion Forum](https://github.com/iRobotEducation/create3_docs/discussions)
--------------------------------------------------------------------------------
/docs/lessons/pwp/Create3-C3_Phone_Home.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/Create3-C3_Phone_Home.pdf
--------------------------------------------------------------------------------
/docs/lessons/pwp/Create3-Rainbow_Light_Painting.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/Create3-Rainbow_Light_Painting.pdf
--------------------------------------------------------------------------------
/docs/lessons/pwp/Create3-Robot_Dance_Recital.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/Create3-Robot_Dance_Recital.pdf
--------------------------------------------------------------------------------
/docs/lessons/pwp/Create3-Sound_Off.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/Create3-Sound_Off.pdf
--------------------------------------------------------------------------------
/docs/lessons/pwp/Python-Web-Playground_First-Project.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/Python-Web-Playground_First-Project.pdf
--------------------------------------------------------------------------------
/docs/lessons/pwp/airtable/add-a-base.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/airtable/add-a-base.png
--------------------------------------------------------------------------------
/docs/lessons/pwp/airtable/api-documentation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/airtable/api-documentation.png
--------------------------------------------------------------------------------
/docs/lessons/pwp/airtable/auth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/airtable/auth.png
--------------------------------------------------------------------------------
/docs/lessons/pwp/airtable/forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/airtable/forward.png
--------------------------------------------------------------------------------
/docs/lessons/pwp/airtable/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/airtable/help.png
--------------------------------------------------------------------------------
/docs/lessons/pwp/airtable/name-base.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/airtable/name-base.png
--------------------------------------------------------------------------------
/docs/lessons/pwp/airtable/open-base.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/airtable/open-base.png
--------------------------------------------------------------------------------
/docs/lessons/pwp/airtable/playground-info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/airtable/playground-info.png
--------------------------------------------------------------------------------
/docs/lessons/pwp/airtable/pwp-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/airtable/pwp-screenshot.png
--------------------------------------------------------------------------------
/docs/lessons/pwp/c3-phone-home.md:
--------------------------------------------------------------------------------
1 | # C3, Phone Home
2 | ## Details
3 | Use a coordinate system to command your robot to return to its starting position.
4 | ### Downloads and Resources
5 | * [PDF: C3, Phone Home Activity Sheet](./Create3-C3_Phone_Home.pdf)
6 |
7 | ## The Main Idea
8 | The Create® 3 robot keeps track of its position on an invisible coordinate grid as it moves around. This feature can be particularly handy when you’d like to tell your robot to drive to a specific set of coordinates, landmark, etc. Here we will use the invisible coordinate system to tell your robot to return to its starting position after roaming around a room.
9 |
10 | ## Project Steps
11 | 1. Remove your robot from the Home Base™ Charging Dock and place it on an empty space on the floor. This starting position will be registered as (0, 0) by the robot when you press “Play” on your program.
12 |
13 | 2. Create a program that drives the robot forward until it bumps into an obstacle. With a bump event, back up a few centimeters and then use await robot.navigate_to(0 , 0) to send your robot back to its original starting point. See the example below for help:
14 | ```
15 | @event(robot.when_play)
16 | async def play(robot):
17 | await robot.set_wheel_speeds(25, 25)
18 |
19 | @event(robot.when_bumped, [True, True])
20 | async def when_bumper(robot):
21 | await robot.move(-15)
22 | await robot.navigate_to(0, 0)
23 |
24 | robot.play()
25 | ```
26 | 3. Press play to watch your robot drive forward until it bumps into an obstacle. Once it bumps, it should reverse, turn around and drive back to its original starting position.
27 |
28 | ## Going Further
29 | Can you use the command await robot.get_position() to program your robot to list the coordinates of the obstacles it bumps into? How might you turn that list into a basic map?
30 |
31 | Try combining the navigate_to() commands with the Create® 3 Light Painting Activity to create precise drawings from a coordinate grid.
32 |
33 | Try measuring out your robot’s arena in centimeters and placing stickers or other flat landmarks down on specific coordinates. Program your robot to drive to each of the coordinates. How similar are you measurements?
--------------------------------------------------------------------------------
/docs/lessons/pwp/light-painting.md:
--------------------------------------------------------------------------------
1 | # Light Paint with the Create® 3 Robot
2 | ## Details
3 | Use long-exposure light photography, paired with the Create® 3 Robot, to create EPIC robot-infused light paintings.
4 |
5 | ### Downloads and Resources
6 | * [PDF: Light Paint with Create® Robot Lesson Plan](./Create3-Rainbow_Light_Painting.pdf)
7 |
--------------------------------------------------------------------------------
/docs/lessons/pwp/pwp-sdk_commands.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/pwp/pwp-sdk_commands.pdf
--------------------------------------------------------------------------------
/docs/lessons/pwp/robot-dance-recital.md:
--------------------------------------------------------------------------------
1 | # Create® 3 Robot Dance Recital
2 | ## Details
3 | Use the Create® 3 and the iRobot Education Python[^1] Web Playground to code your robot to dance the Hokey Pokey. Looking for more? Take your new choreography skills to new heights and code a dance to your own song!
4 |
5 | ### Downloads and Resources
6 | * [PDF: Robot Dance Recital](./Create3-Robot_Dance_Recital.pdf)
7 |
8 | [^1]: Python is governed by the Python Software Foundation.
9 | [^2]: All trademarks mentioned are the property of their respective owners.
10 |
--------------------------------------------------------------------------------
/docs/lessons/pwp/sound-off-1-2.md:
--------------------------------------------------------------------------------
1 | # Sound Off, 1-2
2 | ## Details
3 | Code your Create® 3 Robot to play musical tones and respond to button presses and other sensor input.
4 | ### Downloads and Resources
5 | * [PDF: Sound Off, 1-2 Activity Sheet](./Create3-Sound_Off.pdf)
6 |
7 | ## The Main Idea
8 | Robots can play musical notes by emitting sounds of different frequencies and durations. These notes can be strung together in a sequence to play simple melodies, which are used to help the robot communicate its status. A “Happy Sound” can communicate “I am ready to run,” while an “Angry Sound” can mean “I am experiencing a problem.” Explore programming different notes and melodies to give your robot its own voice!
9 |
10 | ## Project Steps
11 | 1. Locate Button 1 and Button 2 in the Create® 3 button suite. In the code, trigger an event for Button 1 and 2 press with these commands:
12 | ```
13 | @event(robot.when_touched, [True, False]
14 | async def when_touch_fl(robot):
15 | pass
16 |
17 | @event(robot.when_touched, [False, True]
18 | async def when_touch_fr(robot):
19 | pass
20 | ```
21 |
22 | 2. Use the command await robot.play_note(440, 0.25) to play an A4 quarter note. The first parameter determines the note frequency and the second parameter determines note duration (in seconds). Explore playing different notes with our Python[^1] Note Frequencies Guide.
23 |
24 | 3. Under a Button 1 event, list at least three notes together in a sequence to create a “happy sound” melody. Our example snippet is below:
25 | ```
26 | @event(robot.when_touched, [True, False])
27 | async def when_touch_fl(robot):
28 | await robot.play_note(F4, .125)
29 | await robot.play_note(G4, .125)
30 | await robot.play_note(A4, .125)
31 | ```
32 |
33 | 4. Under a Button 2 event, list at least three notes together in a sequence to create an “angry sound.” When finished, you have the beginnings of a robot personality!
34 |
35 | ## Going Further
36 | Take your robot’s personality to new heights by programming it to “grumble” and “shout” via angry melodies when it bumps into obstacles as it drives around the room.
37 |
38 | OR
39 |
40 | Transform your robot into a random guess machine! Create a program that will randomly play a happy or angry sound when a button is pressed. Use the robot to answer Yes or No questions randomly.
41 |
42 | [^1]: Python is governed by the Python Software Foundation.
43 | [^2]: All trademarks mentioned are the property of their respective owners.
44 |
--------------------------------------------------------------------------------
/docs/lessons/pwp/web-playground.md:
--------------------------------------------------------------------------------
1 | # Create® 3 Robot + Web Playground for Python
2 | ## Details
3 | You can connect to the Create® 3 Educational Robot via Bluetooth[^1] and run your first program in a browser through the Python[^2] Web Playground. Follow the instructions to connect, run and explore!
4 |
5 | ### Downloads and Resources
6 | * [PDF: Python Web Playground First Project](./Python-Web-Playground_First-Project.pdf)
7 | * [Video: Run Your First Python Web Playground Project with Create 3](https://bcove.video/3wY40IC)
8 | * [Link: Python Web Playground](https://python.irobot.com/)
9 |
10 | ## Coding The First Project - Python Web Playground
11 | Important Note: If running multiple Create® robots, complete all of the steps below for one robot at a time to avoid connection errors.
12 | ### You’ll Need:
13 | * Home Base® Charging Dock
14 | * Charging Dock Cable
15 | * Create® 3 Educational Robot
16 | * Computer with Bluetooth™ Compatibility (i.e. [Google Chrome Browser](https://www.google.com/chrome/))
17 |
18 | ### Step 1
19 | Confirm that your computer’s Bluetooth™ setting is [“on.”](https://support.microsoft.com/en-us/windows/turn-bluetooth-on-or-off-in-windows-9e92fddd-4e12-e32b-9132-5e36bdb2f75a)
20 |
21 | ### Step 2
22 | Power on your robot. Wait for your robot to fully boot up and play its “Happy Sound” before proceeding.
23 |
24 | ### Step 3
25 | Confirm that your robot is in Bluetooth Mode. You can check this by looking for a blue light glowing through the faceplate on the back-right side of your robot. If no blue light is glowing, remove the faceplate and manually set the switch on the Adaptor Board to the Bluetooth logo on the right.
26 |
27 | ### Step 4
28 | Open Google Chrome in a new window and navigate to [python.irobot.com](http://python.irobot.com/).
29 |
30 | ### Step 5
31 | Click on the Connect button to open the Google Chrome Bluetooth manager. Your robot should appear in the device menu after ~30 seconds under its default device name, or as “Unsupported Device.” Select the robot’s name and click the Pair button.
32 |
33 | ### Step 6
34 | Press play to run the example code project. Try pressing your robot’s bumpers. When you press on the right side of the bumper, your robot’s Ring Light should glow yellow and the robot should begin to spin clockwise. What happens when you press on the left side?
35 |
36 | ### Step 7
37 | Congratulations, you have run your first python web program! To go further, explore our example code snippets and the Python Web Playground glossary to learn more about all of the available commands. Happy Coding!
38 |
39 | [^1]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
40 | [^2]: Python is governed by the Python Software Foundation.
41 | [^3]: All trademarks mentioned are the property of their respective owners.
42 |
--------------------------------------------------------------------------------
/docs/lessons/ros2/intro/creating-packages.md:
--------------------------------------------------------------------------------
1 | # Intro to ROS 2: Creating Packages
2 | ## Details
3 | In this tutorial, Maddie and Kate walk you through the basics of creating a custom ROS 2[^1] package.
4 |
5 | ### Downloads and Resources
6 | * [Video: Creating a ROS 2 Package](https://bcove.video/3FZoaq3)
7 |
8 | [^1]: ROS 2 is governed by Open Robotics
9 | [^2]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/lessons/ros2/intro/serial-communication.md:
--------------------------------------------------------------------------------
1 | # Intro to ROS 2: Serial Communication with the Create® 3 Robot
2 | ## Details
3 | In this tutorial video, review the basics of communicating over a serial port with the Create® 3 robot in order to connect external hardware and other attachments!
4 |
5 | ### Downloads and Resources
6 | * [Video: Serial Communication Tutorial](https://bcove.video/3TyfQ3K)
7 |
8 | [^1]: ROS 2 is governed by Open Robotics
9 | [^2]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/lessons/ros2/intro/working-with-the-cli.md:
--------------------------------------------------------------------------------
1 | # Intro to ROS 2: Working With The Command Line Interface (CLI)
2 | ## Details
3 | In this video tutorial, learn how to use pre-baked ROS 2[^1] commands in your computer's terminal window to control the Create® 3 robot.
4 | ### Downloads and Resources
5 | * [Video: CLI Tutorial](https://bcove.video/3UDjGK5)
6 |
7 | [^1]: ROS 2 is governed by Open Robotics
8 | [^2]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/lessons/ros2/intro/writing-action-clients.md:
--------------------------------------------------------------------------------
1 | # Intro to ROS 2: Writing Action Clients
2 | ## Details
3 | In this video tutorial, we learn the basics of writing a ROS 2[^1] action client for the Create® 3 Educational Robot.
4 | ### Downloads and Resources
5 | * [Video: Writing Action Clients with Create® 3 Robot](https://bcove.video/3FyYtwm)
6 | * [Link: Action Client Example Code](https://github.com/tuftsceeo/Tufts_Create3_Examples/blob/main/Code/Package/example_package/action_drive_square.py)
7 |
8 | [^1]: ROS 2 is governed by Open Robotics
9 | [^2]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/lessons/ros2/intro/writing-pubs-and-subs.md:
--------------------------------------------------------------------------------
1 | # Intro to ROS 2: Writing Publishers and Subscribers
2 | ## Details
3 | In this video tutorial, the instructors cover the basics of writing a publisher and subscriber with ROS 2[^1] and the Create® 3 Robot.
4 | ### Downloads and Resources
5 | * [Video: Intro to Publishers and Subscribers with Create® 3 Robot](https://bcove.video/3TW8aZO)
6 | * [Link: Publisher Example Code](https://github.com/tuftsceeo/Tufts_Create3_Examples/blob/main/Code/Package/example_package/pub_lightring.py)
7 | * [Link: Subscriber Example Code](https://github.com/tuftsceeo/Tufts_Create3_Examples/blob/main/Code/Package/example_package/sub_ir.py)
8 |
9 | [^1]: ROS 2 is governed by Open Robotics
10 | [^2]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/lessons/ros2/overview.md:
--------------------------------------------------------------------------------
1 | # Getting Started with the Create® 3 Robot
2 | ## Details
3 | This "new to ROS 2[^1]" course, with 6+ hours of hands-on learning, covers:
4 |
5 | * Power On & Charge
6 | * Updating the Create® 3 Robot
7 | * Connecting via Bluetooth the the Python Web Playground + running your first project
8 | * Connecting to Wi-Fi
9 | * Installing ROS 2 onto your Linux device or virtual machine
10 | * Running your first ROS 2 Command
11 | * Running basic commands in the command line interface
12 | * Building the Create® 3 examples workspace and running your first example project
13 | * Exploring publishers and subscribers and then writing your own
14 | * Exploring action clients and then writing your own
15 | * Writing and building your own custom ROS 2 packages
16 | * Communicating with Create® 3 over serial ports
17 |
18 | [^1]: ROS 2 is governed by Open Robotics
19 | [^2]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/lessons/ros2/teleop-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/ros2/teleop-1.gif
--------------------------------------------------------------------------------
/docs/lessons/ros2/teleop-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/lessons/ros2/teleop-2.gif
--------------------------------------------------------------------------------
/docs/lessons/ros2/teleop-twist.md:
--------------------------------------------------------------------------------
1 | # Teleop Twist with the Create® 3 Robot
2 | ## Details
3 | In this project, you'll build the Create 3 Examples repository from GitHub and drive the Create® 3 Robot around with your computer's keyboard.
4 |
5 | ### Downloads and Resources
6 | * [Create 3 Examples GitHub](https://github.com/iRobotEducation/create3_examples)
7 | * [Tutorial Video](https://bcove.video/3BOpW9D)
8 |
9 | ## Build the Create® 3 Examples Repository
10 | Example nodes to drive the iRobot® Create® 3 Educational Robot.
11 |
12 | ### Dependencies
13 | * [ROS 2 Galactic](https://docs.ros.org/en/galactic/Installation.html)
14 | * [irobot_create_msgs](https://github.com/iRobotEducation/irobot_create_msgs)
15 |
16 | ### Build instructions
17 | First, source your ROS 2 workspaces with all the required dependencies. Then, you are ready to clone and build this repository. You should only have to do this once per install.
18 |
19 | ```
20 | mkdir -p create3_examples_ws/src
21 | cd create3_examples_ws/src
22 | git clone https://github.com/iRobotEducation/create3_examples.git
23 | cd ..
24 | rosdep install --from-path src --ignore-src -yi
25 | colcon build
26 | ```
27 |
28 | ### Initialization instructions
29 | You will have to do this in every new session in which you wish to use these examples:
30 | ```
31 | source ~/create3_examples_ws/install/local_setup.sh
32 | ```
33 |
34 | ## Teleoperation & Teleprescence Project Instructions
35 | In this example, you will learn to control a Create®3 robot with the keyboard on your laptop. Being able to control the robot from a distance makes it teleoperational. To make it have telepresence, design a phone stand that can attach to the top of the Create®3 robot. Facetime or Zoom into your phone so you can see the environment where you are driving the robot. This allows you to feel present as your robot navigates around.
36 |
37 | 
38 | 
39 |
40 | ## Get Started
41 | Make sure to follow the instructions above in the "Build the Create 3 Examples Repository" section to install the necessary package and dependencies for this example.
42 |
43 | ### Install Dependencies
44 | First, let's install the ROS Teleop Twist package. Copy & paste this line into the open terminal:
45 | ```
46 | sudo apt install ros-galactic-teleop-twist-keyboard
47 | ```
48 |
49 | ### Disabling Motion Control Safety
50 |
51 | Next, we need to disable the motion control safety features of the Create®3 robot. This will allow you to drive the robot in reverse.
52 | ```
53 | ros2 param set /motion_control safety_override full
54 | ```
55 | Then we can run the teleop_twist_keyboard package that we previously installed.
56 | ```
57 | ros2 run teleop_twist_keyboard teleop_twist_keyboard
58 | ```
59 | ### What You'll See
60 | When you run this package & executable you will see the following information in your terminal. Now you can use the keys on your keyboard to remotely control your Create®3 robot. Happy Driving!
61 |
62 | ```
63 | Reading from the keyboard and Publishing to Twist!
64 | ---------------------------
65 | Moving around:
66 | u i o
67 | j k l
68 | m , .
69 |
70 | For Holonomic mode (strafing), hold down the shift key:
71 | ---------------------------
72 | U I O
73 | J K L
74 | M < >
75 |
76 | t : up (+z)
77 | b : down (-z)
78 |
79 | anything else : stop
80 |
81 | q/z : increase/decrease max speeds by 10%
82 | w/x : increase/decrease only linear speed by 10%
83 | e/c : increase/decrease only angular speed by 10%
84 |
85 | CTRL-C to quit
86 | ```
--------------------------------------------------------------------------------
/docs/releases/g_1_1.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release G.1.1
2 | [[Click here to download release G.1.1]](https://github.com/iRobotEducation/create3_docs/releases/download/G.1.1/Create3-G.1.1.swu)
3 |
4 | ## This release is running ROS 2 Galactic with the following interface library versions:
5 |
6 | - [irobot_create_msgs - 1.2.2](https://github.com/iRobotEducation/irobot_create_msgs/tree/1.2.2)
7 | - [cyclonedds - 0.8.1](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.8.1)
8 | - [Fast-DDS - 2.3.3](https://github.com/eProsima/Fast-DDS/tree/2.3.3)
9 |
10 | ## Release Overview
11 |
12 | This release provides the robot's sensors and controls via topics, actions, and services, see [ROS 2 API](../../api/ros2/).
13 |
14 | The robot runs a webserver for updating software, configuring to the network, getting error logs from the robot, and configuring ROS 2 environment variables and parameters.
15 | This release has some known issues using the network configuration webserver page to associate with networks using characters that are not alphanumeric 7-bit ASCII.
16 | If there is an issue getting on the network, it is recommended to first update the software via the robot's host AP mode, then try getting on the network with the latest version, see [Create® 3 Setup](https://edu.irobot.com/create3-setup).
17 |
--------------------------------------------------------------------------------
/docs/releases/g_2_2.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release G.2.2
2 | [[Click here to download release G.2.2]](https://github.com/iRobotEducation/create3_docs/releases/download/G.2.2/Create3-G.2.2.swu)
3 |
4 | ## This release is running ROS 2 Galactic with the following interface library versions:
5 |
6 | - [irobot_create_msgs - 1.2.4](https://github.com/iRobotEducation/irobot_create_msgs/tree/1.2.4)
7 | - [cyclonedds - 0.8.1](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.8.1)
8 | - [Fast-DDS - 2.3.3](https://github.com/eProsima/Fast-DDS/tree/2.3.3)
9 |
10 | ## Release Overview
11 | As with the last release, this one provides the robot's sensors and controls via topics, actions, and services; for more, see [ROS 2 API](../../api/ros2/).
12 | iRobot® Education Bluetooth protocol functionality has been greatly improved in this release; we have released the iRobot Education [Python Web Playground](https://python.irobot.com/) to interact with the robot.
13 | Please be sure your robot's [BLE/USB Toggle](../../hw/adapter/#usbble-toggle) is in the "BLE" position in order to use the robot in this mode.
14 | Note that when the Bluetooth[^1] radio is enabled, the USB-C[^2] port cannot communicate with a downstream device (though it remains powered).
15 |
16 | ## Changelog (from G.1.1)
17 | ### Core Robot
18 | * Webserver
19 | * Properly handles Unicode characters with SSIDs, hostnames, and Bluetooth names
20 | * Reboot Robot and Factory Reset are only available in AP mode
21 | * Added "Identify Robot" when in AP mode to assist setting up multiple robots at once
22 | * MAC addresses are visible on About page
23 | * User Interface
24 | * E-Stop and Backup Limit have [new LED patterns](../../hw/face/#while-operating) to disambiguate from other uses of the UI
25 | * Toggling USB/BLE no longer requires manual application reset from webserver
26 | * Motion Control
27 | * Improve reporting and recovery after safety limits are triggered
28 |
29 | ### ROS 2
30 | * [Docking / undocking](../../api/docking/) action improvements and fixes
31 | * Coordinate system fixes
32 | * `base_link` is now 3D
33 | * `base_footprint` added as a 2D TF frame
34 | * `imu_link` has been removed
35 | * Advertise light ring brightness parameter
36 | * Added audio publication and action to make speakers play sound
37 |
38 | ### iRobot® Education Bluetooth protocol mode
39 | * Fully implement [protocol v1.4](https://github.com/iRobotEducation/root-robot-ble-protocol)
40 | * Add [sound device](https://github.com/iRobotEducation/root-robot-ble-protocol#device-5---sound)
41 | * Add sound on connection and disconnection
42 | * Advertising rate increased to 10 Hz
43 | * Changing robot name when connected is now reflected in advertisement
44 | * Pressing the power button stops all actuators
45 | * Connection improvements on iOS and Android
46 | * Many stability improvements
47 |
48 | ## Known issues
49 | ### Core Robot
50 | * Robot may require multiple connection attempts when changing Wi-Fi networks
51 | * Robot will restart application when its connectivity changes, including connection changes with Wi-Fi or the USB interface, or when it receives a new DHCP lease. This is helpful for autoconfiguration with DDSes but can be disruptive.
52 | * Robot prefers time sync from Wi-Fi over its USB interface
53 |
54 | ### ROS 2
55 | * When using CycloneDDS, invoking ROS 2[^3] actions causes a memory leak on the robot. When the robot runs out of memory, it will automatically restart the application. Follow [this issue](https://github.com/ros2/rmw_cyclonedds/issues/388) for more information.
56 |
57 | ### iRobot® Education Bluetooth protocol mode
58 | * Robot does not recognize disconnection for thirty seconds.
59 | * Changing Bluetooth name in the webserver does not modify advertisement name until application is restarted
60 |
61 | [^1]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
62 | [^2]: USB-C® is a trademark of USB Implementers Forum.
63 | [^3]: ROS 2 is governed by Open Robotics.
64 | [^4]: Python 3 is governed by the Python Software Foundation.
65 | [^5]: All other trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/releases/g_3_1.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release G.3.1
2 | [[Click here to download release G.3.1]](https://github.com/iRobotEducation/create3_docs/releases/download/G.3.1/Create3-G.3.1.swu)
3 |
4 | Note: A G.3.2 patch release is installed on some new robots from the factory.
5 | There is no user-facing difference between these two firmware versions; the difference is related to the manufacturing process.
6 |
7 | For iRobot® Education Bluetooth[^1] users, this is mostly a feature release.
8 | For ROS 2[^2] users, this is mostly a bugfix release.
9 | See below for details.
10 |
11 |
12 | ## This release is running ROS 2 Galactic with the following interface library versions:
13 |
14 | - [irobot_create_msgs - 1.2.4](https://github.com/iRobotEducation/irobot_create_msgs/tree/1.2.4)
15 | - [cyclonedds - 0.8.1](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.8.1)
16 | - [Fast-DDS - 2.3.3](https://github.com/eProsima/Fast-DDS/tree/2.3.3)
17 |
18 | ## Release Overview
19 | As with the last release, this one provides the robot's sensors and controls via topics, actions, and services; for more, see [ROS 2 API](../../api/ros2/).
20 | There have been no changes to the ROS 2 API.
21 |
22 | iRobot® Education Bluetooth protocol functionality has been further improved in this release, adding the seventh IR proximity sensor, and some commands related to docking and the docking sensor.
23 | We have changed the robot's policy to disable all reflexes while in this mode (instead of just the bump reflex).
24 | The robot should also respond more rapidly to disconnection.
25 |
26 | ## Changelog (from G.2.2)
27 | ### Core Robot
28 | * Webserver
29 | * Added ROS namespace form validation [(#71)](https://github.com/iRobotEducation/create3_docs/issues/71)
30 |
31 | * User Interface
32 | * Reduce log spam from audio synthesizer and BLE advertisements
33 | * Add more useful logging from mobility board to nav board
34 |
35 | * Motion Control
36 | * Fix bug relating to robot erroneously hitting backup limit when backup safety is disabled [(#175)](https://github.com/iRobotEducation/create3_docs/issues/175)
37 | * Bugfixes around e-stop logic
38 | * New turn angle controller
39 |
40 | * Connectivity
41 | * Robot will not restart application on DHCP renewals if the address stays the same [(#194)](https://github.com/iRobotEducation/create3_docs/issues/194)
42 | * Add beta serial port forwarding feature
43 |
44 | ### ROS 2
45 | * Add system monitor node to report CPU and RAM usage to the log, as well as checking for multiple robots on the same topic.
46 | * Implement ResetPose Service [(#193)](https://github.com/iRobotEducation/create3_docs/issues/193)
47 | * Proximity slowdown reflex no longer ignores safety_override setting
48 |
49 | ### iRobot® Education Bluetooth protocol mode
50 | * Fully implement [protocol v1.5](https://github.com/iRobotEducation/root-robot-ble-protocol)
51 | * Robot disables all reflexes by default upon connection [(#173)](https://github.com/iRobotEducation/create3_docs/issues/173)
52 | * Fix serial number reporting
53 | * Fix battery event rate
54 | * Robot responds more quickly upon disconnection
55 |
56 | [^1]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
57 | [^2]: ROS 2 is governed by Open Robotics.
58 | [^3]: All other trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/releases/g_4_1.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release G.4.1
2 | [[Click here to download release G.4.1]](https://github.com/iRobotEducation/create3_docs/releases/download/G.4.1/Create3-G.4.1.swu)
3 |
4 | For iRobot® Education Bluetooth[^1] users, this is mostly a bugfix release.
5 | For ROS 2[^2] users, this is mostly a feature release.
6 | See below for details.
7 |
8 |
9 | ## This release is running ROS 2 Galactic with the following interface library versions:
10 |
11 | - [irobot_create_msgs - 1.2.4](https://github.com/iRobotEducation/irobot_create_msgs/tree/1.2.4)
12 | - [cyclonedds - 0.8.1](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.8.1)
13 | - [Fast-DDS - 2.3.3](https://github.com/eProsima/Fast-DDS/tree/2.3.3)
14 |
15 | ## Release Overview
16 | There have been no changes to the [ROS 2 API](../../api/ros2/).
17 | Support has been added for the robot to use a [Fast-DDS Discovery Server](https://fast-dds.docs.eprosima.com/en/latest/fastdds/ros2/discovery_server/ros2_discovery_server.html).
18 | Some bugs have been found and fixed in the iRobot® Education Bluetooth protocol implementation.
19 | The default route should be properly set when the robot is connected to Ethernet-over-USB (but not Wi-Fi).
20 |
21 | ## Changelog (from G.3.1)
22 | ### Core Robot
23 | * Webserver
24 | * Added menu for beta features; hopefully more to come soon.
25 | * Exposed page for beta feature: serial device forwarding over a socket.
26 | * Added options for use of Fast-DDS Discovery server to Application Configuration page.
27 | * More consistent application of the style sheets across the UI.
28 | * Factory Reset option should now be available over Soft AP mode (bugfix).
29 | * Fix "easy" update (over the Internet) to be aware of different ROS versions, and to update properly.
30 |
31 | * Connectivity
32 | * Fixed bug where robot would not always properly set a default route when a device is connected to Ethernet-over-USB but not connected to Wi-Fi. [(#184)](https://github.com/iRobotEducation/create3_docs/issues/184)
33 |
34 | * OS
35 | * Fixed a bug on boot which could cause the system to hang during an update, sometimes causing the robot not to properly update (often with a mysterious red light).
36 |
37 | ### ROS 2
38 | * Implement option to use a Fast-DDS discovery server when RMW is set to Fast-DDS.
39 | * Add parameter to disable `odom` transformations [(#144)](https://github.com/iRobotEducation/create3_docs/issues/144)
40 | * IMU update rate is now 100 Hz
41 |
42 | ### iRobot® Education Bluetooth protocol mode
43 | * Fix incorrect cliff sensor message [(#312)](https://github.com/iRobotEducation/create3_docs/issues/312)
44 | * Fix incorrect accelerometer message [(#309)](https://github.com/iRobotEducation/create3_docs/issues/309)
45 |
46 | [^1]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
47 | [^2]: ROS 2 is governed by Open Robotics.
48 | [^3]: All other trademarks mentioned are the property of their respective owners.
49 |
--------------------------------------------------------------------------------
/docs/releases/g_4_3.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release G.4.3
2 | [[Click here to download release G.4.3]](https://github.com/iRobotEducation/create3_docs/releases/download/G.4.3/Create3-G.4.3.swu)
3 |
4 | For iRobot® Education Bluetooth[^1] users, there are no changes.
5 | For ROS 2[^2] users, this release is to add beta features to help with time sync.
6 | See below for details.
7 |
8 |
9 | ## This release is running ROS 2 Galactic with the following interface library versions:
10 |
11 | - [irobot_create_msgs - 1.2.4](https://github.com/iRobotEducation/irobot_create_msgs/tree/1.2.4)
12 | - [cyclonedds - 0.8.1](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.8.1)
13 | - [Fast-DDS - 2.3.3](https://github.com/eProsima/Fast-DDS/tree/2.3.3)
14 |
15 | ## Release Overview
16 | There have been no changes to the [ROS 2 API](../../api/ros2/).
17 | The robot's time can be set directly, or the ntp daemon can be asked to resync, through the webserver. ([#324](https://github.com/iRobotEducation/create3_docs/issues/324), [#327](https://github.com/iRobotEducation/create3_docs/issues/327))
18 |
19 | ## Changelog (from G.4.1)
20 | ### Core Robot
21 | * Webserver
22 | * Added beta feature: [set time](../../webserver/set-datetime/).
23 | * Added beta feature: [restart ntpd](../../webserver/restart-ntpd/).
24 | * Corrected response text from /api/restart-app [(#330)](https://github.com/iRobotEducation/create3_docs/issues/330)
25 |
26 | * OS
27 | * Corrected direction of boot LED animation (bug introduced in G.4.1).
28 |
29 | [^1]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
30 | [^2]: ROS 2 is governed by Open Robotics.
31 | [^3]: All other trademarks mentioned are the property of their respective owners.
32 |
--------------------------------------------------------------------------------
/docs/releases/g_4_4.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release G.4.4
2 | [[Click here to download release G.4.4]](https://github.com/iRobotEducation/create3_docs/releases/download/G.4.4/Create3-G.4.4.swu)
3 |
4 | ## This release is running ROS 2 Galactic with the following interface library versions:
5 |
6 | - [irobot_create_msgs - 1.2.4](https://github.com/iRobotEducation/irobot_create_msgs/tree/1.2.4)
7 | - [cyclonedds - 0.8.1](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.8.1)
8 | - [Fast-DDS - 2.3.3](https://github.com/eProsima/Fast-DDS/tree/2.3.3)
9 |
10 | ## Release Overview
11 | For iRobot® Education Bluetooth[^1] users, there are no changes.
12 | For ROS 2[^2] users, this release fixes an issue.
13 | See below for details.
14 |
15 | ## Changelog (from G.4.3)
16 | ### ROS 2
17 | * `cmd_audio` subscription is now `reliable` instead of `best-effort` [(#356)](https://github.com/iRobotEducation/create3_docs/issues/356)
18 |
19 | !!!important
20 | A "best-effort" publisher will no longer be able to communicate with this subscription. See [this compatibility matrix](https://docs.ros.org/en/rolling/Concepts/About-Quality-of-Service-Settings.html#qos-compatibilities) for details.
21 |
22 | [^1]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
23 | [^2]: ROS 2 is governed by Open Robotics.
24 | [^3]: All other trademarks mentioned are the property of their respective owners.
25 |
--------------------------------------------------------------------------------
/docs/releases/g_4_5.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release G.4.5
2 | [[Click here to download release G.4.5]](https://github.com/iRobotEducation/create3_docs/releases/download/G.4.5/Create3-G.4.5.swu)
3 |
4 | ## This release is running ROS 2 Galactic with the following interface library versions:
5 |
6 | - [irobot_create_msgs - 1.2.4](https://github.com/iRobotEducation/irobot_create_msgs/tree/1.2.4)
7 | - [cyclonedds - 0.8.1](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.8.1)
8 | - [Fast-DDS - 2.3.3](https://github.com/eProsima/Fast-DDS/tree/2.3.3)
9 |
10 | ## Release Overview
11 | For iRobot® Education Bluetooth[^1] users, there are no changes.
12 | For ROS 2[^2] users, this release fixes a few issues and adds a beta feature.
13 | See below for details.
14 |
15 | ## Changelog (from G.4.4)
16 | ### ROS 2
17 | * Corrected rate of `/stop_status` publication (at least 1 Hz)
18 | * Corrected rate of `/battery_status` publication (at least 0.1 Hz)
19 |
20 | ### Core Robot
21 | * Webserver / OS
22 | * Added beta feature: [set wired subnet](../../webserver/set-wired-subnet/).
23 |
24 | [^1]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
25 | [^2]: ROS 2 is governed by Open Robotics.
26 | [^3]: All other trademarks mentioned are the property of their respective owners.
27 |
--------------------------------------------------------------------------------
/docs/releases/g_5_1.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release G.5.1
2 | [[Click here to download release G.5.1]](https://github.com/iRobotEducation/create3_docs/releases/download/G.5.1/Create3-G.5.1.swu)
3 |
4 | ## This release is running ROS 2 Galactic with the following interface library versions:
5 |
6 | - [irobot_create_msgs - 1.2.4](https://github.com/iRobotEducation/irobot_create_msgs/tree/1.2.4)
7 | - [cyclonedds - 0.8.1](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.8.1)
8 | - [Fast-DDS - 2.3.3](https://github.com/eProsima/Fast-DDS/tree/2.3.3)
9 |
10 | ## Release Overview
11 | For iRobot® Education Bluetooth[^1] users, this is a bugfix release.
12 | For ROS 2[^2] users, this is primarily a feature release.
13 | See below for details.
14 |
15 | ## Changelog (from G.4.5)
16 | ### ROS 2
17 | * Publications
18 | * Add `/cliff_intensity` topic [(#320)](https://github.com/iRobotEducation/create3_docs/issues/320)
19 | * Add tf frame for the IMU (called `imu`), to which the `/imu` topic is now connected
20 | * Middleware
21 | * Allow the use of `;` characters in Fast-DDS Discovery Server configuration [(#400)](https://github.com/iRobotEducation/create3_docs/issues/400)
22 | * Beta: Allow user to [provide an XML configuration file](../../webserver/rmw-profile-override/) for their preferred middleware [(#407)](https://github.com/iRobotEducation/create3_docs/issues/407)
23 |
24 | ### Core Robot
25 | * Webserver / OS
26 | * Beta: Allow user full control to [edit ntp.conf](../../webserver/edit-ntp-conf/) [(#333)](https://github.com/iRobotEducation/create3_docs/issues/333)
27 | * Remove erroneous log messages about the robot's lost Wi-Fi connection when it had never been connected in the first place
28 |
29 | ### iRobot® Education Bluetooth protocol mode
30 | * Fix device number for stall event to match protocol document [(#410)](https://github.com/iRobotEducation/create3_docs/issues/410)
31 |
32 | [^1]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
33 | [^2]: ROS 2 is governed by Open Robotics.
34 | [^3]: All other trademarks mentioned are the property of their respective owners.
35 |
--------------------------------------------------------------------------------
/docs/releases/g_5_2.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release G.5.2
2 | [[Click here to download release G.5.2]](https://github.com/iRobotEducation/create3_docs/releases/download/G.5.2/Create3-G.5.2.swu)
3 |
4 | ## This release is running ROS 2 Galactic with the following interface library versions:
5 |
6 | - [irobot_create_msgs - 1.2.4](https://github.com/iRobotEducation/irobot_create_msgs/tree/1.2.4)
7 | - [cyclonedds - 0.8.1](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.8.1)
8 | - [Fast-DDS - 2.3.3](https://github.com/eProsima/Fast-DDS/tree/2.3.3)
9 |
10 | ## Release Overview
11 | For ROS 2[^1] users, this is a bugfix release.
12 | For iRobot® Education Bluetooth[^2] users, there are no changes.
13 | See below for details.
14 |
15 | ## Changelog (from G.5.1)
16 | ### ROS 2
17 | * Client Library
18 | * Set lock free queue MAX_SEMA_SPINS = 0 [(irobotros/rclcpp#111)](https://github.com/irobot-ros/rclcpp/pull/111)
19 |
20 | [^1]: ROS 2 is governed by Open Robotics.
21 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
22 | [^3]: All other trademarks mentioned are the property of their respective owners.
23 |
--------------------------------------------------------------------------------
/docs/releases/g_5_3.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release G.5.3
2 | [[Click here to download release G.5.3]](https://github.com/iRobotEducation/create3_docs/releases/download/G.5.3/Create3-G.5.3.swu)
3 |
4 | ## This release is running ROS 2 Galactic with the following interface library versions:
5 |
6 | - [irobot_create_msgs - 1.2.4](https://github.com/iRobotEducation/irobot_create_msgs/tree/1.2.4)
7 | - [cyclonedds - 0.8.1](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.8.1)
8 | - [Fast-DDS - 2.3.3](https://github.com/eProsima/Fast-DDS/tree/2.3.3)
9 |
10 | ## Release Overview
11 | For ROS 2[^1] users, this is a bugfix release.
12 | For iRobot® Education Bluetooth[^2] users, there are no changes.
13 | See below for details.
14 |
15 | ## Changelog (from G.5.2)
16 | ### Core Robot
17 | * Webserver
18 | * Fix to the provisioning flow affecting some users [(#395)](https://github.com/iRobotEducation/create3_docs/issues/395)
19 | * ntpd.conf is now reset upon factory reset.
20 |
21 | ### ROS 2
22 | * Publications
23 | * The `cliff_intensity` topic will no longer report values less than zero.
24 | * The `kidnap_status` timestamp is now correct.
25 |
26 | [^1]: ROS 2 is governed by Open Robotics.
27 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
28 | [^3]: All other trademarks mentioned are the property of their respective owners.
29 |
--------------------------------------------------------------------------------
/docs/releases/g_5_4.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release G.5.4
2 | [[Click here to download release G.5.4]](https://github.com/iRobotEducation/create3_docs/releases/download/G.5.4/Create3-G.5.4.swu)
3 |
4 | ## This release is running ROS 2 Galactic with the following interface library versions:
5 |
6 | - [irobot_create_msgs - 1.2.4](https://github.com/iRobotEducation/irobot_create_msgs/tree/1.2.4)
7 | - [cyclonedds - 0.8.1](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.8.1)
8 | - [Fast-DDS - 2.3.3](https://github.com/eProsima/Fast-DDS/tree/2.3.3)
9 |
10 | ## Release Overview
11 | For ROS 2[^1] users, this is a bugfix release.
12 | For iRobot® Education Bluetooth[^2] users, there are no changes.
13 | See below for details.
14 |
15 | ## Changelog (from G.5.3)
16 | ### Core Robot
17 | * Webserver
18 | * Add [beta feature](../../webserver/forget-wifi/) to disconnect from `wlan0` and forget the SSID [(#110)](https://github.com/iRobotEducation/create3_docs/issues/110)
19 | * Power Management
20 | * Robot will now change its light ring to "spinning red" when the battery level dips below 3%, and will explicitly call the `/robot_power` service when it falls below 2%.
21 |
22 | ### ROS 2
23 | * Actions
24 | * The `/rotate_angle` action no longer accepts overriding goals; an ongoing goal must be completed (successfully or unsuccessfully) before a new goal will be accepted. [(#351)](https://github.com/iRobotEducation/create3_docs/issues/351)
25 | * Improve reliability of robot docking and undocking.
26 |
27 | [^1]: ROS 2 is governed by Open Robotics.
28 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
29 | [^3]: All other trademarks mentioned are the property of their respective owners.
30 |
--------------------------------------------------------------------------------
/docs/releases/h_0_0.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release H.0.0
2 | [[Click here to download release H.0.0]](https://github.com/iRobotEducation/create3_docs/releases/download/H.0.0/Create3-H.0.0.swu)
3 |
4 | This release is considered a beta. Please [report any issues](https://github.com/iRobotEducation/create3_docs/issues) as they are encountered.
5 |
6 | !!! bug
7 | This beta release is not stable in BLE mode. Please be sure the [USB/BLE toggle](../../hw/adapter/#usbble-toggle) on the adapter board is switched to "USB" before using this firmware.
8 |
9 | ## This release is running ROS 2 Humble with the following interface library versions:
10 |
11 | - [irobot_create_msgs - 2.1.0](https://github.com/iRobotEducation/irobot_create_msgs/tree/2.1.0)
12 | - [cyclonedds - 0.9.0](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.9.0)
13 | - [Fast-DDS - 2.6.2](https://github.com/eProsima/Fast-DDS/tree/2.6.2)
14 |
15 | ## Release Overview
16 | This release has feature parity with [G.3.1](../g_3_1), except that ROS 2[^1] has been upgraded to Humble.
17 |
18 | ### ROS 2
19 |
20 | As with the last release, this one provides the robot's sensors and controls via topics, actions, and services; for more, see [ROS 2 API](../../api/ros2/).
21 |
22 | Between Galactic and Humble, the docking API (messages, actions, and topics) have slightly changed as follows:
23 |
24 | * the `DockServo` action is now `Dock` to match the `Undock` action [(example here)](../../api/docking/#docking)
25 | * the `/dock` topic (and `Dock` message) is now `/dock_status` (and `DockStatus` message) to avoid confusion with the action [(example here)](../../api/docking/#dock-information)
26 |
27 | ### iRobot® Education Bluetooth protocol mode
28 |
29 | iRobot® Education Bluetooth[^2] protocol mode is not supported.
30 |
31 |
32 | [^1]: ROS 2 is governed by Open Robotics.
33 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
34 | [^3]: All other trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/releases/h_1_0.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release H.1.0
2 | [[Click here to download release H.1.0]](https://github.com/iRobotEducation/create3_docs/releases/download/H.1.0/Create3-H.1.0.swu)
3 |
4 | !!! warning
5 | When using Fast-DDS, startup times are about 30s longer than in our Galactic release. We are working on a fix.
6 |
7 | ## This release is running ROS 2 Humble with the following interface library versions:
8 |
9 | - [irobot_create_msgs - 2.1.0](https://github.com/iRobotEducation/irobot_create_msgs/tree/2.1.0)
10 | - [cyclonedds - 0.9.0](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.9.0)
11 | - [Fast-DDS - 2.6.4](https://github.com/eProsima/Fast-DDS/tree/2.6.4)
12 |
13 | ## Release Overview
14 | This release has feature parity with [G.4.3](../g_4_3), except that ROS 2[^1] has been upgraded to Humble.
15 |
16 | ### ROS 2
17 |
18 | As with the last release, this one provides the robot's sensors and controls via topics, actions, and services; for more, see [ROS 2 API](../../api/ros2/).
19 |
20 | Between Galactic and Humble, the docking API (messages, actions, and topics) have slightly changed as follows:
21 |
22 | * the `DockServo` action is now `Dock` to match the `Undock` action [(example here)](../../api/docking/#docking)
23 | * the `/dock` topic (and `Dock` message) is now `/dock_status` (and `DockStatus` message) to avoid confusion with the action [(example here)](../../api/docking/#dock-information)
24 |
25 | ### iRobot® Education Bluetooth protocol mode
26 |
27 | iRobot® Education Bluetooth[^2] protocol mode is supported; for best results, use Cyclone DDS.
28 |
29 |
30 | [^1]: ROS 2 is governed by Open Robotics.
31 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
32 | [^3]: All other trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/releases/h_1_1.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release H.1.1
2 | [[Click here to download release H.1.1]](https://github.com/iRobotEducation/create3_docs/releases/download/H.1.1/Create3-H.1.1.swu)
3 |
4 | !!! warning
5 | When using Fast-DDS, startup times are about 30s longer than in our Galactic release. We are working on a fix.
6 |
7 | ## This release is running ROS 2 Humble with the following interface library versions:
8 |
9 | - [irobot_create_msgs - 2.1.0](https://github.com/iRobotEducation/irobot_create_msgs/tree/2.1.0)
10 | - [cyclonedds - 0.9.0](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.9.0)
11 | - [Fast-DDS - 2.6.4](https://github.com/eProsima/Fast-DDS/tree/2.6.4)
12 |
13 | ## Release Overview
14 | For ROS 2[^1] users, this release fixes a couple issues.
15 | For iRobot® Education Bluetooth[^2] users, there are no changes.
16 | See below for details.
17 |
18 | ## Changelog (from H.1.0)
19 | ### ROS 2
20 | * Fix for issue involving goal timeouts with Fast-DDS
21 | * `cmd_audio` subscription is now `reliable` instead of `best-effort` [(#356)](https://github.com/iRobotEducation/create3_docs/issues/356)
22 |
23 | !!!important
24 | A "best-effort" publisher will no longer be able to communicate with this subscription. See [this compatibility matrix](https://docs.ros.org/en/rolling/Concepts/About-Quality-of-Service-Settings.html#qos-compatibilities) for details.
25 |
26 | [^1]: ROS 2 is governed by Open Robotics.
27 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
28 | [^3]: All other trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/releases/h_1_2.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release H.1.2
2 | [[Click here to download release H.1.2]](https://github.com/iRobotEducation/create3_docs/releases/download/H.1.2/Create3-H.1.2.swu)
3 |
4 | !!! warning
5 | When using Fast-DDS, startup times are about 30s longer than in our Galactic release. We are working on a fix.
6 |
7 | ## This release is running ROS 2 Humble with the following interface library versions:
8 |
9 | - [irobot_create_msgs - 2.1.0](https://github.com/iRobotEducation/irobot_create_msgs/tree/2.1.0)
10 | - [cyclonedds - 0.9.0](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.9.0)
11 | - [Fast-DDS - 2.6.4](https://github.com/eProsima/Fast-DDS/tree/2.6.4)
12 |
13 | ## Release Overview
14 | For ROS 2[^1] users, this release fixes a few issues and adds a beta feature.
15 | For iRobot® Education Bluetooth[^2] users, there are no changes.
16 | See below for details.
17 |
18 | ## Changelog (from H.1.1)
19 | ### ROS 2
20 | * Publications
21 | * Corrected rate of `/stop_status` publication (at least 1 Hz)
22 | * Corrected rate of `/battery_status` publication (at least 0.1 Hz)
23 | * Fast-DDS
24 | * Changed [publication mode](https://www.eprosima.com/index.php/resources-all/performance/dds-asynchronous-vs-synchronous-publishing) from synchronous to asynchronous (matches Galactic)
25 |
26 | ### Core Robot
27 | * Webserver / OS
28 | * Added beta feature: [set wired subnet](../../webserver/set-wired-subnet/).
29 |
30 | [^1]: ROS 2 is governed by Open Robotics.
31 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
32 | [^3]: All other trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/releases/h_2_1.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release H.2.1
2 | [[Click here to download release H.2.1]](https://github.com/iRobotEducation/create3_docs/releases/download/H.2.1/Create3-H.2.1.swu)
3 |
4 | !!! warning
5 | When using Fast-DDS, startup times are about 30s longer than in our Galactic release. We are working on a fix.
6 |
7 | ## This release is running ROS 2 Humble with the following interface library versions:
8 |
9 | - [irobot_create_msgs - 2.1.0](https://github.com/iRobotEducation/irobot_create_msgs/tree/2.1.0)
10 | - [cyclonedds - 0.9.0](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.9.0)
11 | - [Fast-DDS - 2.6.4](https://github.com/eProsima/Fast-DDS/tree/2.6.4)
12 |
13 | ## Release Overview
14 | For ROS 2[^1] users, this is primarily a feature release.
15 | For iRobot® Education Bluetooth[^2] users, this is a bugfix release.
16 | See below for details.
17 |
18 | ## Changelog (from H.1.2)
19 | ### ROS 2
20 | * Publications
21 | * Add `/cliff_intensity` topic [(#320)](https://github.com/iRobotEducation/create3_docs/issues/320)
22 | * Add tf frame for the IMU (called `imu`), to which the `/imu` topic is now connected
23 | * Middleware
24 | * Allow the use of `;` characters in Fast-DDS Discovery Server configuration [(#400)](https://github.com/iRobotEducation/create3_docs/issues/400)
25 | * Beta: Allow user to [provide an XML configuration file](../../webserver/rmw-profile-override/) for their preferred middleware [(#407)](https://github.com/iRobotEducation/create3_docs/issues/407)
26 |
27 | ### Core Robot
28 | * Webserver / OS
29 | * Beta: Allow user full control to [edit ntp.conf](../../webserver/edit-ntp-conf/) [(#333)](https://github.com/iRobotEducation/create3_docs/issues/333)
30 | * Remove erroneous log messages about the robot's lost Wi-Fi connection when it had never been connected in the first place
31 |
32 | ### iRobot® Education Bluetooth protocol mode
33 | * Fix device number for stall event to match protocol document [(#410)](https://github.com/iRobotEducation/create3_docs/issues/410)
34 |
35 | [^1]: ROS 2 is governed by Open Robotics.
36 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
37 | [^3]: All other trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/releases/h_2_2.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release H.2.2
2 | [[Click here to download release H.2.2]](https://github.com/iRobotEducation/create3_docs/releases/download/H.2.2/Create3-H.2.2.swu)
3 |
4 | !!! warning
5 | When using Fast-DDS, startup times are about 30s longer than in our Galactic release. We are working on a fix.
6 |
7 | ## This release is running ROS 2 Humble with the following interface library versions:
8 |
9 | - [irobot_create_msgs - 2.1.0](https://github.com/iRobotEducation/irobot_create_msgs/tree/2.1.0)
10 | - [cyclonedds - 0.9.0](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.9.0)
11 | - [Fast-DDS - 2.6.4](https://github.com/eProsima/Fast-DDS/tree/2.6.4)
12 |
13 | ## Release Overview
14 | For ROS 2[^1] users, this is a bugfix release.
15 | For iRobot® Education Bluetooth[^2] users, there are no changes.
16 | See below for details.
17 |
18 | ## Changelog (from H.2.1)
19 | ### ROS 2
20 | * Client Library
21 | * Set lock free queue MAX_SEMA_SPINS = 0 [(irobot-ros/events-executor#20)](https://github.com/irobot-ros/events-executor/pull/20)
22 |
23 | [^1]: ROS 2 is governed by Open Robotics.
24 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
25 | [^3]: All other trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/releases/h_2_3.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release H.2.3
2 | [[Click here to download release H.2.3]](https://github.com/iRobotEducation/create3_docs/releases/download/H.2.3/Create3-H.2.3.swu)
3 |
4 | !!! warning
5 | When using Fast-DDS, startup times are about 30s longer than in our Galactic release. We are working on a fix.
6 |
7 | ## This release is running ROS 2 Humble with the following interface library versions:
8 |
9 | - [irobot_create_msgs - 2.1.0](https://github.com/iRobotEducation/irobot_create_msgs/tree/2.1.0)
10 | - [cyclonedds - 0.9.0](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.9.0)
11 | - [Fast-DDS - 2.6.4](https://github.com/eProsima/Fast-DDS/tree/2.6.4)
12 |
13 | ## Release Overview
14 | For ROS 2[^1] users, this is a bugfix release.
15 | For iRobot® Education Bluetooth[^2] users, there are no changes.
16 | See below for details.
17 |
18 | ## Changelog (from H.2.2)
19 | ### Core Robot
20 | * Webserver
21 | * Fix to the provisioning flow affecting some users [(#395)](https://github.com/iRobotEducation/create3_docs/issues/395)
22 | * Factory reset now properly resets ntpd.conf.
23 | * Factory reset now resets the RMW to Fast DDS (default for Humble).
24 |
25 | ### ROS 2
26 | * Publications
27 | * The `cliff_intensity` topic will no longer report values less than zero.
28 | * The `kidnap_status` timestamp is now correct.
29 |
30 | [^1]: ROS 2 is governed by Open Robotics.
31 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
32 | [^3]: All other trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/releases/h_2_4.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release H.2.4
2 | [[Click here to download release H.2.4]](https://github.com/iRobotEducation/create3_docs/releases/download/H.2.4/Create3-H.2.4.swu)
3 |
4 | !!! warning
5 | When using Fast-DDS, startup times are about 30s longer than in our Galactic release. We are working on a fix.
6 |
7 | ## This release is running ROS 2 Humble with the following interface library versions:
8 |
9 | - [irobot_create_msgs - 2.1.0](https://github.com/iRobotEducation/irobot_create_msgs/tree/2.1.0)
10 | - [cyclonedds - 0.9.0](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.9.0)
11 | - [Fast-DDS - 2.6.4](https://github.com/eProsima/Fast-DDS/tree/2.6.4)
12 |
13 | ## Release Overview
14 | For ROS 2[^1] users, this is a bugfix release.
15 | For iRobot® Education Bluetooth[^2] users, there are no changes.
16 | See below for details.
17 |
18 | ## Changelog (from H.2.3)
19 | ### Core Robot
20 | * Webserver
21 | * Add [beta feature](../../webserver/forget-wifi/) to disconnect from `wlan0` and forget the SSID [(#110)](https://github.com/iRobotEducation/create3_docs/issues/110)
22 | * Power Management
23 | * Robot will now change its light ring to "spinning red" when the battery level dips below 3%, and will explicitly call the `/robot_power` service when it falls below 2%.
24 |
25 | ### ROS 2
26 | * Actions
27 | * The `/rotate_angle` action no longer accepts overriding goals; an ongoing goal must be completed (successfully or unsuccessfully) before a new goal will be accepted. [(#351)](https://github.com/iRobotEducation/create3_docs/issues/351)
28 | * Improve reliability of robot docking and undocking.
29 |
30 | [^1]: ROS 2 is governed by Open Robotics.
31 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
32 | [^3]: All other trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/releases/h_2_5.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release H.2.5
2 | [[Click here to download release H.2.5]](https://github.com/iRobotEducation/create3_docs/releases/download/H.2.5/Create3-H.2.5.swu)
3 |
4 | !!! warning
5 | When using Fast-DDS, startup times are about 30s longer than in our Galactic release.
6 |
7 | ## This release is running ROS 2 Humble with the following interface library versions:
8 |
9 | - [irobot_create_msgs - 2.1.0](https://github.com/iRobotEducation/irobot_create_msgs/tree/2.1.0)
10 | - [cyclonedds - 0.10.3](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.10.3)
11 | - [Fast-DDS - 2.6.4](https://github.com/eProsima/Fast-DDS/tree/2.6.4)
12 |
13 | ## Release Overview
14 | For ROS 2[^1] users, this is a bugfix release.
15 | For iRobot® Education Bluetooth[^2] users, there are no changes.
16 | See below for details.
17 |
18 | ## Changelog (from H.2.4)
19 | ### Core Robot
20 | * Overall
21 | * The robot uses less RAM when idle in this release than in previous releases.
22 | * Webserver
23 | * Add hidden [beta feature](../../webserver/wpa-supp-override/) to use a user-supplied wpa_supplicant.conf file. Note that this workflow conflicts with the normal provisioning workflow, so it has not been added to the beta menu, so that it is not accessed by accident.
24 |
25 | ### ROS 2
26 | * Library Versions
27 | * Update Cyclone DDS from 0.9.0 to 0.10.3
28 | * Parameters
29 | * Add ROS 2 parameter `wheels_stop_threshold_sec` to the `/motion_control` node. This parameter controls the amount of time that the robot will keep executing the last provided velocity command (on the `/cmd_vel` topic) before considering it stale and stopping the wheels. Default value is 0.5 seconds.
30 | * Add the following ROS 2 parameters to the `/robot_state` node to control (and disable) unnecessary ROS 2 publications to improve robot performance:
31 | * `publish_hazard_msgs`: default `true`. If set to false, the robot will not publish the `/hazard_detection` topic. Disabling this can noticeably reduce the CPU and RAM usage of the robot.
32 | * `hazards_pub_fixed_period_ms`: default `-1`. This controls whether the robot should publish hazard information even if the hazards are not changing. Set it to `-1` to disable fixed period hazard publications and have hazards be published only when they change. This parameter will be ignored if `publish_hazard_msgs` is set to `false`.
33 | * `raw_kinematics_min_pub_period_ms`: default `25`. This controls the minimum period at which the robot should publish raw kinematics information. If set to `-1`, it will disable raw kinematics publications. This can noticeably reduce the CPU and RAM usage of the robot. A value of `1` indicates that raw data should be published as soon as they are available. Values higher than `1` will throttle publications and will give some CPU improvement, but won't help RAM usage.
34 | The following topics are affected by this parameter: `/imu`, `/mouse`, `/wheel_status`, `/wheel_ticks`, `/wheel_vels`.
35 | If you are not interested in subscribing to these topics, it's recommended to set this parameter's value to `-1`.
36 | * `publish_odom_tfs`: default `true`. If set to false, the robot will not publish odometry information in the `/tf` topic. This can reduce the CPU and RAM usage of the robot if not needed. Note: this parameter is independent from `raw_kinematics_min_pub_period_ms`
37 |
38 | As a summary, the best performance can be obtained via
39 | ```
40 | robot_state:
41 | ros__parameters:
42 | publish_hazard_msgs: false
43 | publish_odom_tfs: false
44 | raw_kinematics_min_pub_period_ms: -1
45 | ```
46 |
47 | Note that `publish_odom_tfs: true` is required to interact with the navigation stack.
48 |
49 | This new version changes the default timing of some ROS 2 topics to improve the CPU performance.
50 | To restore the previous behavior users can use the following configuration
51 |
52 | ```
53 | robot_state:
54 | ros__parameters:
55 | hazards_pub_fixed_period_ms: 16
56 | raw_kinematics_min_pub_period_ms: 1
57 | ```
58 |
59 |
60 | [^1]: ROS 2 is governed by Open Robotics.
61 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
62 | [^3]: All other trademarks mentioned are the property of their respective owners.
63 |
--------------------------------------------------------------------------------
/docs/releases/h_2_6.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release H.2.6
2 | [[Click here to download release H.2.6]](https://github.com/iRobotEducation/create3_docs/releases/download/H.2.6/Create3-H.2.6.swu)
3 |
4 | !!! warning
5 | When using Fast-DDS, startup times are about 30s longer than in our Galactic release.
6 |
7 | ## This release is running ROS 2 Humble with the following interface library versions:
8 |
9 | - [irobot_create_msgs - 2.1.0](https://github.com/iRobotEducation/irobot_create_msgs/tree/2.1.0)
10 | - [cyclonedds - 0.10.3](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.10.3)
11 | - [Fast-DDS - 2.6.4](https://github.com/eProsima/Fast-DDS/tree/2.6.4)
12 |
13 | ## Release Overview
14 | For ROS 2[^1] users, this is a bugfix release.
15 | For iRobot® Education Bluetooth[^2] users, there are no changes.
16 | See below for details.
17 |
18 | !!! important
19 | There were quite a few changes in H.2.5; it is recommended to also read [that changelog](../h_2_5).
20 |
21 | ## Changelog (from H.2.5)
22 | ### ROS 2
23 | * Parameters
24 | * Robot now sets `max_speed` parameter properly when `safety_override = full` is set in application configuration [(#558)](https://github.com/iRobotEducation/create3_docs/issues/558)
25 |
26 |
27 | [^1]: ROS 2 is governed by Open Robotics.
28 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
29 | [^3]: All other trademarks mentioned are the property of their respective owners.
30 |
--------------------------------------------------------------------------------
/docs/releases/i_0_0.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Release I.0.0
2 | [[Click here to download release I.0.0.CycloneDDS]](https://github.com/iRobotEducation/create3_docs/releases/download/I.0.0/Create3-I.0.0.CycloneDDS.swu)
3 | [[Click here to download release I.0.0.FastDDS]](https://github.com/iRobotEducation/create3_docs/releases/download/I.0.0/Create3-I.0.0.FastDDS.swu)
4 |
5 | !!! warning
6 | Be sure to download the correct release for your choice of middleware.
7 |
8 | ## This release is running ROS 2 Iron with the following interface library versions:
9 |
10 | - [irobot_create_msgs - 2.1.0](https://github.com/iRobotEducation/irobot_create_msgs/tree/2.1.0)
11 | - [cyclonedds - 0.10.3](https://github.com/eclipse-cyclonedds/cyclonedds/tree/0.10.3)
12 | - [Fast-DDS - 2.10.1](https://github.com/eProsima/Fast-DDS/tree/2.10.1)
13 |
14 | ## Release Overview
15 | For ROS 2[^1] users, this is a feature release, and our first upgrade to ROS 2 Iron.
16 | For iRobot® Education Bluetooth[^2] users, there are no changes.
17 | See below for details.
18 |
19 | !!! note
20 | In testing, this release appears to be fully compatible with ROS 2 Jazzy, as well. Please be sure to let us know if you run into any [issues](https://github.com/iRobotEducation/create3_docs/issues).
21 |
22 | ## Changelog (from H.2.6)
23 | ### ROS 2
24 | * Topics
25 | * The robot can now be tele-operated via `geometry_msgs/msg/TwistStamped` messages on the `cmd_vel_stamped` topic. (You may also continue to use the `cmd_vel` topic; don't use both at the same time.)
26 |
27 |
28 | [^1]: ROS 2 is governed by Open Robotics.
29 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
30 | [^3]: All other trademarks mentioned are the property of their respective owners.
31 |
--------------------------------------------------------------------------------
/docs/releases/overview.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Releases
2 |
3 | ## Overview
4 | Create® 3 releases take the version schema
5 |
6 | ..
7 |
8 | The letter corresponds with the ROS 2[^1] Release.
9 | For example, G corresponds with Galactic, and H corresponds with Humble.
10 | See [ROS 2 Releases](https://docs.ros.org/en/rolling/Releases.html).
11 |
12 | The first number corresponds with a major release number within the ROS 2 letter release.
13 | Increments to major release imply API breaking changes or significant new features.
14 |
15 | The second number corresponds with a minor release number within the major release number.
16 | Increments to the minor release imply bug fixes or small feature additions that should be backwards compatible with code that currently integrates with the major release number.
17 | One exception is that beta features may be added in minor releases.
18 |
19 | The latest stable release can be found at
20 | [http://edu.irobot.com/create3-latest-fw](http://edu.irobot.com/create3-latest-fw).
21 |
22 | The latest stable Iron release can be found at
23 | [http://edu.irobot.com/create3-iron-latest-fw](http://edu.irobot.com/create3-iron-latest-fw).
24 | The latest stable Humble release can be found at
25 | [http://edu.irobot.com/create3-humble-latest-fw](http://edu.irobot.com/create3-humble-latest-fw).
26 | The latest stable Galactic release can be found at
27 | [http://edu.irobot.com/create3-galactic-latest-fw](http://edu.irobot.com/create3-galactic-latest-fw).
28 |
29 | Downloads of a particular version can be found on each individual release page.
30 |
31 | ## Releases
32 |
33 | ### Iron
34 | * [I.0.0](../i_0_0) (iron-latest, latest)
35 |
36 | ### Humble
37 | * [H.2.6](../h_2_6) (humble-latest)
38 | * [H.2.5](../h_2_5)
39 | * [H.2.4](../h_2_4)
40 | * [H.2.3](../h_2_3)
41 | * [H.2.2](../h_2_2)
42 | * [H.2.1](../h_2_1)
43 | * [H.1.2](../h_1_2)
44 | * [H.1.1](../h_1_1)
45 | * [H.1.0](../h_1_0)
46 | * [H.0.0](../h_0_0)
47 |
48 | ### Galactic
49 | * [G.5.4](../g_5_4) (galactic-latest)
50 | * [G.5.3](../g_5_3)
51 | * [G.5.2](../g_5_2)
52 | * [G.5.1](../g_5_1)
53 | * [G.4.5](../g_4_5)
54 | * [G.4.4](../g_4_4)
55 | * [G.4.3](../g_4_3)
56 | * [G.4.1](../g_4_1)
57 | * [G.3.1](../g_3_1)
58 | * [G.2.2](../g_2_2)
59 | * [G.1.1](../g_1_1)
60 |
61 | [^1]: ROS 2 is governed by Open Robotics
62 | [^2]: All trademarks mentioned are the property of their respective owners.
63 |
--------------------------------------------------------------------------------
/docs/setup/compute-ntp.md:
--------------------------------------------------------------------------------
1 | # Setup NTP on compute board to serve time to Create® 3
2 |
3 | ## Why should I do this?
4 |
5 | ROS 2[^1] is dependent upon synchronized clocks between nodes to have all data in the same reference time.
6 | When the Create® 3 is publishing on topics, it is publishing its data with the timestamp of its system clock, which synchronizes with an NTP server.
7 | If the Create® 3's Wi-Fi is connected to a network with internet connection, it will sync to a global time NTP server.
8 | The Create® 3 NTP config is also set to listen for servers on USB IP address 192.168.186.1 and 192.168.186.3.
9 | If the compute board is connected over USB to the Create® 3 with the compute board assigned one of these IP addresses on its USB interface, NTP on the compute board can keep the clocks between the compute board and Create® 3 in sync, even without an internet connection.
10 | If there is an internet connection on both compute board and Create® 3, configuring the NTP server on the compute board to serve the Create® 3 can still add value by reducing jitter between clocks.
11 | If your Create® 3 and compute board have an internet connection, this is not required, but is still recommended.
12 |
13 | ## Step-by-step
14 |
15 | 1. On your Compute Board, install chrony NTP server package
16 |
17 | sudo apt install chrony
18 |
19 | 1. Edit the config file
20 |
21 | sudo vi /etc/chrony/chrony.conf
22 |
23 | 1. Add the following lines after the `pool #.ubuntu.pool.ntp.org iburst maxsources #` block
24 |
25 | # Enable serving time to ntp clients on 192.168.186.0 subnet.
26 | allow 192.168.186.0/24
27 |
28 | 1. Optionally add the following lines immediately afterward if your SBC will not have a connection to a reference clock (i.e., the Internet)
29 |
30 | # Serve time even if not synchronized to a time source
31 | local stratum 10
32 |
33 | 1. Restart chrony
34 |
35 | sudo service chrony restart
36 |
37 | 1. Log into the Create® 3 web application and modify the NTP sources (as of Jul 2023 under "Beta Features") to add the following if it does not exist:
38 |
39 | server 192.168.186.3 iburst
40 |
41 | 1. Through the Create® 3 web application, restart the NTPD server (or reboot the robot) if you made changes in the previous step.
42 |
43 | 1. Verify compute NTP server is talking to the Create® 3
44 |
45 | sudo chronyc clients
46 |
47 | 1. Confirm 192.168.182.2 shows non 0 number in NTP column
48 |
49 | Hostname NTP Drop Int IntL Last Cmd Drop Int Last
50 | ===============================================================================
51 | 192.168.186.2 51 0 5 - 32 0 0 - -
52 |
53 | 1. Note that if there is a large jump in the time, the Create® 3 may not accept it until its next reboot.
54 | This can be verified by checking the Create® 3 robot's log for a line like
55 |
56 | user.notice ntpd: ntpd: reply from 192.168.186.3: delay ### is too high, ignoring
57 | If this happens, simply restart the robot (not just the application) via the webserver over the network connection.
58 |
59 | [^1]: ROS 2 is governed by Open Robotics
60 |
--------------------------------------------------------------------------------
/docs/setup/data/app-config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/setup/data/app-config.png
--------------------------------------------------------------------------------
/docs/setup/data/appconfig.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/setup/data/appconfig.png
--------------------------------------------------------------------------------
/docs/setup/data/cmdline.txt:
--------------------------------------------------------------------------------
1 | net.ifnames=0 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait modules-load=dwc2,g_ether fixrtc
2 |
--------------------------------------------------------------------------------
/docs/setup/data/create3_ros_domain_id.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/setup/data/create3_ros_domain_id.png
--------------------------------------------------------------------------------
/docs/setup/data/ethoverusb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/setup/data/ethoverusb.png
--------------------------------------------------------------------------------
/docs/setup/data/ethoverusb_step1-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/setup/data/ethoverusb_step1-2.png
--------------------------------------------------------------------------------
/docs/setup/data/ethoverusb_step3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/setup/data/ethoverusb_step3.png
--------------------------------------------------------------------------------
/docs/setup/data/fastdds.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/setup/data/fastdds.png
--------------------------------------------------------------------------------
/docs/setup/data/jetson_setup_flow_overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/setup/data/jetson_setup_flow_overview.png
--------------------------------------------------------------------------------
/docs/setup/data/logs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/setup/data/logs.png
--------------------------------------------------------------------------------
/docs/setup/data/navqplus/flash_hookup_lights.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/setup/data/navqplus/flash_hookup_lights.jpg
--------------------------------------------------------------------------------
/docs/setup/data/navqplus/usb_network.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/setup/data/navqplus/usb_network.png
--------------------------------------------------------------------------------
/docs/setup/data/navqplus/uuu_emmc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/setup/data/navqplus/uuu_emmc.png
--------------------------------------------------------------------------------
/docs/setup/data/navqplus/uuu_ls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/setup/data/navqplus/uuu_ls.png
--------------------------------------------------------------------------------
/docs/setup/data/network-config.txt:
--------------------------------------------------------------------------------
1 | # This file contains a netplan-compatible configuration which cloud-init
2 | # will apply on first-boot. Please refer to the cloud-init documentation and
3 | # the netplan reference for full details:
4 | #
5 | # https://cloudinit.readthedocs.io/
6 | # https://netplan.io/reference
7 | #
8 | # Some additional examples are commented out below
9 |
10 | version: 2
11 | ethernets:
12 | eth0:
13 | dhcp4: true
14 | optional: true
15 | usb0:
16 | dhcp4: false
17 | optional: true
18 | addresses: [192.168.186.3/24]
19 | #wifis:
20 | # wlan0:
21 | # dhcp4: true
22 | # optional: true
23 | # access-points:
24 | # "myhomewifi":
25 | # password: "S3kr1t"
26 | # "myworkwifi":
27 | # password: "correct battery horse staple"
28 | # "workssid":
29 | # auth:
30 | # key-management: eap
31 | # method: peap
32 | # identity: "me@example.com"
33 | # password: "passw0rd"
34 | # ca-certificate: /etc/my_ca.pem
35 |
--------------------------------------------------------------------------------
/docs/setup/data/nv-l4t-usb-device-mode-runtime-start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Copyright (c) 2017-2020, NVIDIA CORPORATION. All rights reserved.
4 | #
5 | # Redistribution and use in source and binary forms, with or without
6 | # modification, are permitted provided that the following conditions
7 | # are met:
8 | # * Redistributions of source code must retain the above copyright
9 | # notice, this list of conditions and the following disclaimer.
10 | # * Redistributions in binary form must reproduce the above copyright
11 | # notice, this list of conditions and the following disclaimer in the
12 | # documentation and/or other materials provided with the distribution.
13 | # * Neither the name of NVIDIA CORPORATION nor the names of its
14 | # contributors may be used to endorse or promote products derived
15 | # from this software without specific prior written permission.
16 | #
17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
18 | # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 | # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
21 | # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 | # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23 | # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24 | # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
25 | # OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 |
29 | script_dir="$(cd "$(dirname "$0")" && pwd)"
30 | . "${script_dir}/nv-l4t-usb-device-mode-config.sh"
31 |
32 | if [ -f "${script_dir}/IP_ADDRESS_FOR_CREATE3_ROBOT.conf" ]; then
33 | robot_ip_conf_file=${script_dir}/IP_ADDRESS_FOR_CREATE3_ROBOT.conf
34 | cat $robot_ip_conf_file
35 | fi
36 |
37 | /sbin/ifconfig l4tbr0 up
38 | # The interface might lose the address when down. Add it here to make sur
39 | # it's configured.
40 | /sbin/ifconfig l4tbr0 ${net_ip} netmask ${net_mask}
41 | /sbin/ifconfig l4tbr0 add ${net_ipv6}
42 |
43 | # IF the config file for iRobot Create® 3 (IP_ADDRESS_FOR_CREATE3_ROBOT.conf) exists,
44 | # then apply the static IP address (192.168.186.3), instead of enabling DHCP server
45 | if [ -n "$robot_ip_conf_file" ]; then
46 | static_ip_for_robot=`cat $robot_ip_conf_file`
47 | /sbin/ifconfig l4tbr0 $static_ip_for_robot netmask 255.255.255.0 broadcast 192.168.186.255
48 | echo "Static IP address set to $static_ip_for_robot"
49 | else
50 |
51 | # Start a DHCP server so that connected systems automatically receive an IP
52 | # address. This avoids users having to manually configure the connection, and
53 | # also prevents Network Manager on Linux from destroying any manually applied
54 | # configuration.
55 | #
56 | # The DHCP server must be started here, because it won't start if it's told to
57 | # run on an interface that's down.
58 | if [ -n "${net_dhcp_start}" ]; then
59 | echo "### IN"
60 | dhcpd_conf="${script_dir}/dhcpd.conf"
61 | dhcpd_leases="/run/l4t-usb-devmode-dhcpd.leases"
62 | dhcpd_pid="/run/l4t-usb-devmode-dhcpd.pid"
63 | cat > "${dhcpd_conf}" <
2 |
3 |
4 |
5 |
6 |
7 |
8 | SUPER_CLIENT
9 |
10 |
11 |
12 |
13 |
14 | VM_IP
15 | 11811
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/docs/setup/data/usercfg.txt:
--------------------------------------------------------------------------------
1 | # Place "config.txt" changes (dtparam, dtoverlay, disable_overscan, etc.) in
2 | # this file. Please refer to the README file for a description of the various
3 | # configuration files on the boot partition.
4 | dtoverlay=dwc2,dr_mode=peripheral
--------------------------------------------------------------------------------
/docs/setup/discovery-server.md:
--------------------------------------------------------------------------------
1 | # Fast DDS Discovery Server
2 |
3 | This page gives instructions on how to use a Fast DDS discovery server with the Create® 3 robot as a client.
4 | For more information on the Fast DDS discovery server, please refer to the [eProsima documentation](https://fast-dds.docs.eprosima.com/en/latest/fastdds/ros2/discovery_server/ros2_discovery_server.html).
5 |
6 | *We’ll use the term "computer" to refer to any SBC (single board computer), virtual machine, personal computer, etc.*
7 |
8 | ## Configure Server
9 |
10 | 1. Start the discovery server on the computer that you wish to use as your server by replacing with the computer's IP address.
11 |
12 | fastdds discovery -i 0 -l -p 11811
13 |
14 | 
15 |
16 | ## Configure Create® 3 Robot as a Client
17 | !!! important
18 | If you have enabled the discovery server previously and wish to change the Wi-Fi network you are connected to, make sure the discovery server is disabled in the configuration settings **before** connecting it to a **new** Wi-Fi network.
19 | The discovery server can be disabled by unchecking the "Enable Fast DDS discovery server?" checkbox in the [webserver application settings](../../webserver/application/), and then saving and restarting the application.
20 |
21 | 1. Make sure your Create® 3 robot is connected to Wi-Fi. If it isn't, follow the directions [here](../provision/).
22 |
23 | 1. Navigate to the robot’s web server via its IP address.
24 | Go to [webserver application settings](../../webserver/application/) and enable the checkbox for the discovery server.
25 | In the field `Address and port of Fast DDS discovery server`, enter the IP address of your server followed by `:11811` (the default port for the Fast DDS discovery server is `11811`, but it is configurable).
26 |
27 | 1. If you intend on connecting multiple robots to the same discovery server, make sure to give the Create® 3 robot a namespace.
28 | Restart the application after saving all settings.
29 | 
30 |
31 | !!! attention
32 | It is recommended you check the [logs](../../webserver/logs/) to confirm the discovery server has been enabled on the robot. 
33 |
34 | ## Configure Other Devices as Super Clients
35 | When using a discovery server with a Create® 3 Robot, all other devices connected to the discovery server must be set up as super clients in order to communicate with the Create® 3 Robot.
36 | Other devices could be any device that runs ROS 2 and wants to communicate with the Create® 3 Robot.
37 |
38 | 1. Before starting, stop the ROS 2 Daemon with `ros2 daemon stop`.
39 |
40 | 1. Download the .xml file found [here](data/super_client_configuration_file.xml) and replace VM_IP with your device’s IP address.
41 |
42 | 1. Navigate to your device and open terminal. If the super client and server are on the same computer, make sure to open a new terminal (separate terminal from where the server is running).
43 |
44 | 1. Assign your .xml file as your default profile by entering the following.
45 |
46 | export FASTRTPS_DEFAULT_PROFILES_FILE=/path/to/the/xml/profile
47 |
48 | 1. Now, try looking for the Create® 3 topics list by running `ros2 topic list`.
49 |
--------------------------------------------------------------------------------
/docs/setup/docker.md:
--------------------------------------------------------------------------------
1 | # Create® 3 Desktop Docker Image
2 |
3 | We provide a Docker image suitable for developing and running Create® 3 applications on your Desktop.
4 | The docker image is named `irobotedu/create3-galactic` and its source code can be found [here](https://github.com/iRobotEducation/create3-docker).
5 |
6 | !!! note
7 | The Docker image can be run on any base OS. However, non Linux-based OS will require custom networking configuration in order to communicate between a Docker container and a remote ROS 2 application.
8 |
9 | ## Description of the Image
10 |
11 | The Create® 3 Docker image is based off the official ROS 2 Docker images and runs an Ubuntu OS.
12 | It contains all the core ROS 2 packages contained in the "desktop" variant (i.e. it includes development tools, core libries and visualization tools).
13 |
14 | The Create® 3 Docker image includes pre-built all the open-source Create® 3 repositories such as: the Create® 3 ROS 2 message interfaces, the Create® 3 simulator (both Gazebo classic and Gazebo ignition) and the Create® 3 examples.
15 |
16 | ## Installing Docker
17 |
18 | Follow the [official instructions](https://docs.docker.com/get-docker/) to setup Docker on your machine.
19 |
20 | ## Starting a Docker container
21 |
22 | The following instructions may vary depending on your base OS and Docker installation mechanism.
23 |
24 | ### Linux
25 |
26 | The following instructions assume that you have followed the [Docker post-installation steps for Linux](https://docs.docker.com/engine/install/linux-postinstall/).
27 |
28 | ```sh
29 | docker run -it --network=host --privileged -e DISPLAY=$DISPLAY irobotedu/create3-galactic bash
30 | ```
31 |
32 | The `--network=host` option is required in order to allow the Docker container to communicate using ROS 2 with remote applications (e.g. your Create® 3 robot or compute-board).
33 |
34 | The `--privileged -e DISPLAY=$DISPLAY` options are required in order to let the Docker container to access your xhost server and use GUI application (e.g. `rviz` or `gazebo`).
35 |
36 | After you started the docker container, if you want to use GUI application, one (or more) extra steps are necessary.
37 | A simple way is to run the following in a new terminal:
38 | ```sh
39 | xhost +local:docker:CONTAINER_ID
40 | ```
41 | Where `CONTAINER_ID` can be found either running `head -1 /proc/self/cgroup | cut -d / -f 3` inside the Docker container or by running `docker ps` in a new terminal.
42 |
43 | You can find other ways to enable GUI in docker [here](http://wiki.ros.org/docker/Tutorials/GUI).
44 | As an alternative, you can use the [rocker tool](https://github.com/osrf/rocker) to wrap the `irobotedu/create3-galactic` image and add capabilities to it.
45 |
--------------------------------------------------------------------------------
/docs/setup/pi4.md:
--------------------------------------------------------------------------------
1 | This page has moved.
2 | Ubuntu 20.04 and Galactic setup instructions are now located [here](../setup/pi4galactic.md).
3 | Ubuntu 22.04 and Humble setup instructions are now located [here](../setup/pi4humble.md).
4 |
--------------------------------------------------------------------------------
/docs/setup/provision.md:
--------------------------------------------------------------------------------
1 | # Connect Create® 3 to Wi-Fi
2 | ## The Basics
3 | Follow the main guide for getting started [here](https://edu.irobot.com/create3-setup).
4 |
5 | ## Select RMW Implementation
6 | If you are planning to use ROS 2[^1], make sure you have selected the matching RMW (ROS 2 middleware) implementation as the rest of the nodes in your system.
7 | This can be found in the Application → Configuration menu in the Create® 3 robot's web server, shown in the below image.
8 |
9 | 
10 |
11 | The default RMW for ROS 2 Galactic is Cyclone DDS.
12 | Be sure to click "save" after making any changes, and then restart the application.
13 | !!! attention
14 | **As of Create 3 software version G.2.2, there is a memory leak in Cyclone DDS that can cause the robot to reboot after a few hours of use. Please monitor [this issue](https://github.com/ros2/rmw_cyclonedds/issues/388) for further information. Fast-DDS does not have this problem.**
15 |
16 | See [ROS 2 Middleware Config](xml-config.md) for more information about RMW specific choices and configuration requirements.
17 |
18 | A detailed rundown of the features of the robot webserver can be found on the [Application](../webserver/application.md) page.
19 |
20 | ## Using Multiple Robots
21 |
22 | !!! important
23 | If you plan to use multiple Create® 3 robots connected to the same Wi-Fi network, then **you must follow the [Multi-Robot Setup documentation](multi-robot.md)**
24 |
25 | [^1]: ROS 2 is governed by Open Robotics
26 |
--------------------------------------------------------------------------------
/docs/setup/ubuntu2004.md:
--------------------------------------------------------------------------------
1 | # Install ROS 2 Galactic with Create 3 Messages on an Ubuntu 20.04 Machine
2 |
3 | ## Before you start
4 | These directions should work on a machine natively running Ubuntu[^1] 20.04, as well as in a virtualized container within another operating system.
5 | Note that there might be some network setup required if in a virtualized container; for example, RMWs seem to like running in a bridged network configuration rather than a NATted one.
6 |
7 | These directions follow Open Robotics' official documentation on [Installing ROS 2 on Ubuntu Linux](https://docs.ros.org/en/galactic/Installation/Ubuntu-Install-Debians.html), and more detailed information about what the commands below do can be found there.
8 |
9 | !!! important
10 | Some single board computers may have board specific instructions that differ from the step-by-step process outlined below.
11 | These instructions are available for the [NVIDIA® Jetson™](../jetson) and [Raspberry Pi® 4](../pi4galactic).
12 |
13 | ## Step-by-step
14 |
15 | 1. If you haven't already, download and install [Ubuntu® Server 20.04 64-bit](https://releases.ubuntu.com/20.04/ubuntu-20.04.4-live-server-amd64.iso) onto your machine.
16 |
17 | 1. Once logged in, check to ensure that you are using a UTF-8 locale by typing
18 |
19 | echo $LANG
20 | and ensuring "UTF-8" is at the end of the returned string.
21 |
22 | 1. Execute the following blocks of commands to install ROS 2[^2]:
23 |
24 | sudo apt update && sudo apt install -y curl gnupg2 lsb-release build-essential git cmake
25 | then
26 |
27 | sudo curl -ksSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
28 | echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
29 | sudo apt update && sudo apt install -y ros-galactic-ros-base python3-colcon-common-extensions python3-rosdep ros-galactic-rmw-fastrtps-cpp ros-galactic-rmw-cyclonedds-cpp ros-galactic-irobot-create-msgs
30 | finally
31 |
32 | echo "source /usr/share/colcon_cd/function/colcon_cd.sh" >> ~/.bashrc
33 | echo "export _colcon_cd_root=/opt/ros/galactic/" >> ~/.bashrc
34 | echo "source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash" >> ~/.bashrc
35 | echo "source /opt/ros/galactic/setup.bash" >> ~/.bashrc
36 |
37 | 1. At this point, we recommend setting your default RMW (ROS 2 middleware). The RMW you set here has to match the RMW on your robot, which can be found from its Application Configuration page. More detail on RMW can be found [here](../xml-config). Right now, the Create® 3 robot supports `rmw_cyclonedds_cpp` and `rmw_fastrtps_cpp`. The default for Galactic is `rmw_cyclonedds_cpp`. Depending on your robot's RMW implementation, type one of the following:
38 |
39 | echo "export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp" >> ~/.bashrc
40 | or
41 |
42 | echo "export RMW_IMPLEMENTATION=rmw_fastrtps_cpp" >> ~/.bashrc
43 |
44 | 1. Finally, either log out and log back in, or simply
45 |
46 | source ~/.bashrc
47 |
48 | 1. If both your computer and robot are on the same network, you should now be able to test things out with a `ros2 topic list`.
49 | If this does not work, please refer to [ROS 2 Network Configuration](../xml-config/) for further configuration ideas.
50 | A full Create® 3 API description can be found [here](../../api/ros2).
51 |
52 | [^1]: Ubuntu is a registered trademark of Canonical Ltd.
53 | [^2]: ROS 2 is governed by Open Robotics
54 |
--------------------------------------------------------------------------------
/docs/setup/ubuntu2204.md:
--------------------------------------------------------------------------------
1 | # Install ROS 2 Humble with Create 3 Messages on an Ubuntu 22.04 Machine
2 |
3 | ## Before you start
4 | These directions should work on a machine natively running Ubuntu[^1] 22.04, as well as in a virtualized container within another operating system.
5 | Note that there might be some network setup required if in a virtualized container; for example, RMWs seem to like running in a bridged network configuration rather than a NATted one.
6 |
7 | These directions follow Open Robotics' official documentation on [Installing ROS 2 on Ubuntu Linux](https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html), and more detailed information about what the commands below do can be found there.
8 |
9 | !!! important
10 | Some single board computers may have board specific instructions that differ from the step-by-step process outlined below.
11 | These instructions are available for the [NavQPlus](../navqplus) and [Raspberry Pi® 4](../pi4humble).
12 |
13 | ## Step-by-step
14 |
15 | 1. If you haven't already, download and install [Ubuntu® 22.04 64-bit](https://releases.ubuntu.com/22.04/) onto your machine. You may choose either the desktop (for a GUI) or server (for console-only) install.
16 |
17 | 1. Once logged in, check to ensure that you are using a UTF-8 locale by typing
18 |
19 | echo $LANG
20 | and ensuring "UTF-8" is at the end of the returned string.
21 |
22 | 1. Ensure that the [Ubuntu Universe repository](https://help.ubuntu.com/community/Repositories/Ubuntu) is enabled by checking the output of this command:
23 |
24 | apt-cache policy | grep universe
25 | which should output a line like
26 |
27 | 500 http://us.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
28 | release v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=universe,b=amd64
29 | If it does not, execute the following:
30 |
31 | sudo apt update && sudo apt install software-properties-common && sudo add-apt-repository universe
32 |
33 | 1. Add the ROS 2[^2] apt repository, first by installing curl
34 |
35 | sudo apt install curl
36 | then authorizing the Open Robotics GPG key
37 |
38 | sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
39 | and then adding the repository to your computer's sources list
40 |
41 | echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
42 |
43 | 1. Make sure your other packages are up to date
44 |
45 | sudo apt update && sudo apt upgrade
46 |
47 | 1. And then install ROS 2. If you have a graphical user environment, use
48 |
49 | sudo apt install -y ros-humble-desktop
50 | otherwise just use the base (barebones) install
51 |
52 | sudo apt install -y ros-humble-ros-base
53 |
54 | 1. Next add the Create® 3 messages:
55 |
56 | sudo apt install -y ros-humble-irobot-create-msgs
57 |
58 | 1. We also recommend installing a few other packages:
59 |
60 | sudo apt install -y build-essential python3-colcon-common-extensions python3-rosdep ros-humble-rmw-cyclonedds-cpp
61 |
62 | 1. In order to have your environment ready to go, we recommend auto-running the following when you open a new session:
63 |
64 | echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
65 |
66 | 1. At this point, we recommend setting your default RMW (ROS 2 middleware). The RMW you set here has to match the RMW on your robot, which can be found from its Application Configuration page. More detail on RMW can be found [here](../xml-config). Right now, the Create® 3 robot supports `rmw_cyclonedds_cpp` and `rmw_fastrtps_cpp`. The default for Humble is `rmw_fastrtps_cpp`. Depending on your robot's RMW implementation, type one of the following:
67 |
68 | echo "export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp" >> ~/.bashrc
69 | or
70 |
71 | echo "export RMW_IMPLEMENTATION=rmw_fastrtps_cpp" >> ~/.bashrc
72 |
73 | 1. Finally, either log out and log back in, or simply
74 |
75 | source ~/.bashrc
76 |
77 | 1. If both your computer and robot are on the same network, you should now be able to test things out with a `ros2 topic list`.
78 | If this does not work, please refer to [ROS 2 Network Configuration](../xml-config/) for further configuration ideas.
79 | A full Create® 3 API description can be found [here](../../api/ros2).
80 |
81 | [^1]: Ubuntu is a registered trademark of Canonical Ltd.
82 | [^2]: ROS 2 is governed by Open Robotics
83 |
--------------------------------------------------------------------------------
/docs/sim/setup.md:
--------------------------------------------------------------------------------
1 | # Using the iRobot® Create® 3 Simulator
2 |
3 | We provide a ROS 2 Gazebo simulation stack for the iRobot® Create® 3 Educational Robot.
4 | Have a look at its [Github repository](https://github.com/iRobotEducation/create3_sim).
5 | The Github repository contains instructions for how to building and running the simulator on your laptop.
6 |
7 | This application completely simulates a Create® 3 robot, thus exposing to the user all the same [ROS 2 APIs](../api/ros2.md) as the real robot.
8 |
9 | You will be able to use the iRobot® Create® 3 Simulator to quickly develop your new applications and eventually run them on the real robot without having to change anything.
10 |
--------------------------------------------------------------------------------
/docs/stylesheets/irobot-palette.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --md-default-fg-color: hsla(0, 0%, 0%, 0.87);
3 | --md-default-fg-color--light: hsla(0, 0%, 0%, 0.54);
4 | --md-default-fg-color--lighter: hsla(0, 0%, 0%, 0.32);
5 | --md-default-fg-color--lightest: hsla(0, 0%, 0%, 0.07);
6 | --md-default-bg-color: hsla(0, 0%, 100%, 1);
7 | --md-default-bg-color--light: hsla(0, 0%, 100%, 0.7);
8 | --md-default-bg-color--lighter: hsla(0, 0%, 100%, 0.3);
9 | --md-default-bg-color--lightest: hsla(0, 0%, 100%, 0.12);
10 |
11 | --md-primary-fg-color: #6CB86A;
12 | --md-primary-fg-color--light: #ECB7B7;
13 | --md-primary-fg-color--dark: #90030C;
14 | --md-primary-bg-color: hsla(0, 0%, 100%, 1);
15 | --md-primary-bg-color--light: hsla(0, 0%, 100%, 0.7);
16 |
17 | --md-accent-fg-color: #e95c67;
18 | --md-accent-fg-color--transparent: #e95c67;
19 | --md-accent-bg-color: hsla(0, 0%, 100%, 1);
20 | --md-accent-bg-color--light: hsla(0, 0%, 100%, 0.7);
21 |
22 |
23 | --md-code-fg-color: hsla(200, 18%, 26%, 1);
24 | --md-code-bg-color: hsla(0, 0%, 96%, 1);
25 |
26 | --md-code-hl-color: hsla(#{hex2hsl($clr-yellow-a200)}, 0.5);
27 | --md-code-hl-number-color: hsla(0, 67%, 50%, 1);
28 | --md-code-hl-special-color: hsla(340, 83%, 47%, 1);
29 | --md-code-hl-function-color: hsla(291, 45%, 50%, 1);
30 | --md-code-hl-constant-color: hsla(250, 63%, 60%, 1);
31 | --md-code-hl-keyword-color: hsla(219, 54%, 51%, 1);
32 | --md-code-hl-string-color: hsla(150, 63%, 30%, 1);
33 | --md-code-hl-name-color: var(--md-code-fg-color);
34 | --md-code-hl-operator-color: var(--md-default-fg-color--light);
35 | --md-code-hl-punctuation-color: var(--md-default-fg-color--light);
36 | --md-code-hl-comment-color: var(--md-default-fg-color--light);
37 | --md-code-hl-generic-color: var(--md-default-fg-color--light);
38 | --md-code-hl-variable-color: var(--md-default-fg-color--light);
39 |
40 | --md-typeset-color: var(--md-default-fg-color);
41 |
42 | --md-typeset-a-color: var(--md-primary-fg-color);
43 |
44 | --md-typeset-mark-color: hsla(#{hex2hsl($clr-yellow-a200)}, 0.5);
45 |
46 | --md-typeset-del-color: hsla(6, 90%, 60%, 0.15);
47 | --md-typeset-ins-color: hsla(150, 90%, 44%, 0.15);
48 |
49 | --md-typeset-kbd-color: hsla(0, 0%, 98%, 1);
50 | --md-typeset-kbd-accent-color: hsla(0, 100%, 100%, 1);
51 | --md-typeset-kbd-border-color: hsla(0, 0%, 72%, 1);
52 |
53 | --md-typeset-table-color: hsla(0, 0%, 0%, 0.12);
54 |
55 | --md-admonition-fg-color: var(--md-default-fg-color);
56 | --md-admonition-bg-color: var(--md-default-bg-color);
57 |
58 | --md-footer-fg-color: hsla(0, 0%, 100%, 1);
59 | --md-footer-fg-color--light: hsla(0, 0%, 100%, 0.7);
60 | --md-footer-fg-color--lighter: hsla(0, 0%, 100%, 0.3);
61 | --md-footer-bg-color: hsla(0, 0%, 0%, 0.87);
62 | --md-footer-bg-color--dark: hsla(0, 0%, 0%, 0.32);
63 | }
64 |
65 | .md-grid {
66 | max-width: 85%;
67 | }
--------------------------------------------------------------------------------
/docs/webserver/about.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver - About
2 | The about page includes details about the state at the operating system level.
3 |
4 | 
5 |
6 | ## IP Address
7 | This is the dotted octet IP address currently used to access this page.
8 |
9 | ## Version
10 | This is the raw version string of the firmware currently loaded on the robot.
11 |
12 | ## SKU
13 | This is the SKU that iRobot uses to identify the Create® 3 robot.
14 |
15 | ## Battery
16 | This includes both the percentage charge of the robot's smart battery, as well as the current capacity in milliamp-hours.
17 |
18 | ## Properties
19 | This section includes iRobot-specific diagnostic information about this robot.
20 |
21 | ## Date
22 | The current date and time on the robot.
23 |
24 | ## Uptime
25 | The amount of time since this robot's last reboot.
26 |
27 | ## Memory
28 | Total RAM and swap space available on the robot.
29 |
30 | ## ifconfig
31 | Output of the `ifconfig` command, including information for all available Ethernet interfaces.
32 | These may include `lo`, `usb0`, `wlan0`, and/or `wlan1` depending on the state of the robot.
33 | Note that `wlan0` and `wlan1` are the same physical device, except that `wlan0` is used when the robot is a station, and `wlan1` is used when it is an access point.
34 |
35 | ## hciconfig
36 | Output of the `hciconfig` command, including information for all available Bluetooth®[^1] interfaces.
37 | This will be blank when the USB/BLE toggle on the [adapter board](../hw/adapter.md) is set to USB.
38 |
39 | ## Factory Reset
40 | A hyperlink to factory reset the robot will appear when the robot is in access point mode.
41 | This will remove all user configuration, but the firmware version will not change.
42 |
43 | [^1]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
44 | [^2]: All other trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/webserver/application.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver - Application
2 | The Application menu normally has two options: "Configuration" and "Restart Application."
3 | When the robot is acting as an access point, a third option, "Reboot robot," appears.
4 |
5 | ## Restart Application
6 | Clicking "Restart Application" will restart the robot's ROS 2[^1] application.
7 | This will take a few seconds to complete.
8 | Restarting the application is necessary after modifying ROS 2 configuration settings.
9 | Restarting the application will not restart the webserver; they are separate applications.
10 |
11 | ## Reboot Robot
12 | Clicking "Reboot Robot" will completely reboot the robot.
13 | This will take multiple minutes to complete.
14 |
15 | ## Application Configuration
16 | 
17 |
18 | There are two configuration sections on this page.
19 | After saving either section, it is required to restart the application for changes to take effect.
20 |
21 | ### Main Configuration
22 | The main configuration includes ROS 2 domain ID, namespace, and RMW Implementation.
23 | Basic information about these settings can be found on this docs site both in the [ROS 2 Middleware Configuration](../../setup/xml-config) and [Multi-Robot Setup](../../setup/multi-robot) pages.
24 | Further details on these settings can be found in the official ROS 2 documentation.
25 |
26 | For robots running Galactic >= G.4 and Humble >= H.1, when Fast-DDS is selected as the RMW, it is possible to direct the robot to use an offboard Fast-DDS Discovery server, as well.
27 | Further details on the Fast-DDS Discovery Server can be found [here](https://fast-dds.docs.eprosima.com/en/latest/fastdds/ros2/discovery_server/ros2_discovery_server.html).
28 |
29 | When running Create 3 firmware for Iron, only one middleware selection is available at a time; to switch middleware, it is necessary to install the matching firmware.
30 |
31 | ### Application ROS 2 Parameters File
32 | This is a raw yaml file used for configuring ROS 2 parameters.
33 | The web server will not validate this yaml file; setting it incorrectly may cause the application to fail to start properly.
34 | Details of this will be found in the [logs](../webserver/logs.md).
35 | If this happens, the parameters file can again be edited and saved in the web server in order to correct the problem.
36 | An official ROS 2 tutorial on parameters can be found [here](https://docs.ros.org/en/galactic/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Parameters/Understanding-ROS2-Parameters.html).
37 |
38 | [^1]: ROS 2 is governed by Open Robotics
39 | [^2]: All other trademarks mentioned are the property of their respective owners.
40 |
--------------------------------------------------------------------------------
/docs/webserver/connect.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver - Connect
2 | The connect page of the Create® 3 webserver allows the robot's name to be changed, and also is used to provision the robot to a 2.4 GHz Wi-Fi network.
3 |
4 | 
5 |
6 | The top of the connect page gives the robot's current IPv4 address.
7 |
8 | The "Update Robot Names" box allows the user to change the robot's hostname (which can also be used to find the robot using mDNS) and its Bluetooth name (which can be used to find it using the iRobot Education Bluetooth®[^1] protocol.)
9 |
10 | The "Connect to a 2.4 GHz Wi-Fi Network" box allows the user to connect to any network the robot can perceive.
11 | Clicking on the box to the right of "Type your Wi-Fi network name" should yield a drop-down of all available networks.
12 |
13 | It may be necessary to change the drop-down for additional radio bands, depending on the region in which the robot is used.
14 | If you are using the robot in Japan (JP), please select "Japan;" if you are using the robot in any of (AS, CA, FM, GU, KY, MP, PR, TW, UM, US, or VI), please select "North America."
15 |
16 | [^1]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
17 | [^2]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/webserver/data/about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/webserver/data/about.png
--------------------------------------------------------------------------------
/docs/webserver/data/app-config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/webserver/data/app-config.png
--------------------------------------------------------------------------------
/docs/webserver/data/connect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/webserver/data/connect.png
--------------------------------------------------------------------------------
/docs/webserver/data/edit-ntp-conf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/webserver/data/edit-ntp-conf.png
--------------------------------------------------------------------------------
/docs/webserver/data/edit-wpa-supp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/webserver/data/edit-wpa-supp.png
--------------------------------------------------------------------------------
/docs/webserver/data/home-in-AP.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/webserver/data/home-in-AP.png
--------------------------------------------------------------------------------
/docs/webserver/data/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/webserver/data/home.png
--------------------------------------------------------------------------------
/docs/webserver/data/logs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/webserver/data/logs.png
--------------------------------------------------------------------------------
/docs/webserver/data/rmw-profile-override.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/webserver/data/rmw-profile-override.png
--------------------------------------------------------------------------------
/docs/webserver/data/serial-config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/webserver/data/serial-config.png
--------------------------------------------------------------------------------
/docs/webserver/data/set-datetime.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/webserver/data/set-datetime.png
--------------------------------------------------------------------------------
/docs/webserver/data/set-wired-subnet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/webserver/data/set-wired-subnet.png
--------------------------------------------------------------------------------
/docs/webserver/data/update-expanded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/webserver/data/update-expanded.png
--------------------------------------------------------------------------------
/docs/webserver/data/update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iRobotEducation/create3_docs/53f188ffce498133d589f980fc18d38493d0ca84/docs/webserver/data/update.png
--------------------------------------------------------------------------------
/docs/webserver/edit-ntp-conf.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver - Edit ntp.conf
2 | The Edit ntp.conf page of the Create® 3 webserver allows the user to modify the robot's NTP daemon configuration file.
3 |
4 | !!!warning
5 | Please note that this is a beta feature, and as such is not supported by the customer service team.
6 | Please exercise caution, as improper use of beta features may result in an inoperable robot.
7 |
8 | 
9 |
10 | This page allows the user to directly edit `ntp.conf` on the robot. After pressing "save," the NTP daemon must be [restarted](../webserver/restart-ntpd.md).
11 |
12 | [^1]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/webserver/forget-wifi.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver - Forget Wi-Fi Network
2 | The "Forget Wi-Fi Network" beta menu option of the Create® 3 webserver instructs the Create® 3 robot to forget about and disconnect from any Wi-Fi networks to which it had been connected.
3 |
4 | !!!warning
5 | Please note that this is a beta feature, and as such is not supported by the customer service team.
6 | Please exercise caution, as improper use of beta features may result in an inoperable robot.
7 |
8 | Selecting the "Forget Wi-Fi Network" option will spawn a pop-up requesting confirmation.
9 | Once confirmed, the robot will forget about any SSIDs to which it has connected, and to immediately disconnect from the `wlan0` inteface if it is currently connected.
10 | If this command is issued over `wlan0`, it will be necessary to communicate with the robot either in AP mode or using Ethernet-over-USB.
11 |
12 | This feature can also be accessed by sending a POST to `/api/forget-wifi`.
13 |
14 | [^1]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/webserver/home.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver - Home
2 | The home page of the Create® 3 webserver includes the version number of the robot.
3 |
4 | 
5 |
6 | When the robot is in access point mode, an "Identify Robot" button appears between the banner and version number.
7 | Pressing this button will cause the robot to emit a chime.
8 | This may be helpful in order to find a particular robot while provisioning multiple robots at once.
9 |
10 | 
11 |
12 | [^1]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/webserver/logs.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver - Logs
2 | The logs page of the Create® 3 webserver provides an interface for accessing the robot's system log.
3 |
4 | 
5 |
6 | Note that the logs are lost when the robot loses power.
7 | Clicking "Download Logs" will pull a raw text file including the logs show on this page; this can also be accessed at `/logs-raw` on the webserver.
8 |
9 | [^1]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/webserver/overview.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver Overview
2 |
3 | !!! tip
4 | If this is your first time using the robot's web server, it's important to run through [initial setup](https://edu.irobot.com/create3-setup).
5 |
6 | The Create® 3 robot runs a configuration webserver for modifying settings of the robot.
7 | This is a separate process from its ROS 2[^1] application; it is running regardless of the status of that application.
8 | The webserver can be accessed via the robot's `usb0` (Ethernet over USB host), `wlan0` (provisioned to an external access point), or `wlan1` (robot as its own access point) interfaces.
9 | The robot has a fixed IP address of 192.168.186.2 over its `usb0` interface, and a fixed IP address of 192.168.10.1 over its `wlan1` interface.
10 | The robot will get an IP address over DHCP as served by your network on its `wlan0` interface.
11 | The webserver is available over http (port 80) in a browser by navigating to its IP address on whichever interface is active.
12 |
13 | !!! attention
14 | It is not recommended to run the robot's access point while also controlling the robot via ROS 2 or the iRobot Education Bluetooth®[^2] protocol.
15 |
16 | Please use the menu to navigate between sections of the webserver, or else navigate directly to the sections below:
17 |
18 | - [Home](../webserver/home.md)
19 | - [Connect](../webserver/connect.md)
20 | - [Update](../webserver/update.md)
21 | - [Logs](../webserver/logs.md)
22 | - [Application](../webserver/application.md)
23 | - Beta Features
24 | - [Serial Forwarder](../webserver/serial-config.md)
25 | - [Set Date and Time](../webserver/set-datetime.md)
26 | - [Edit ntp.conf](../webserver/edit-ntp-conf.md)
27 | - [Restart ntpd](../webserver/restart-ntpd.md)
28 | - [Set Wired Subnet](../webserver/set-wired-subnet.md)
29 | - [Override RMW Profile](../webserver/rmw-profile-override.md)
30 | - [About](../webserver/about.md)
31 |
32 | [^1]: ROS 2 is governed by Open Robotics
33 | [^2]: The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by iRobot is under license.
34 | [^3]: All other trademarks mentioned are the property of their respective owners.
35 |
--------------------------------------------------------------------------------
/docs/webserver/restart-ntpd.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver - Restart ntpd
2 | The "Restart ntpd" beta menu option of the Create® 3 webserver instructs the Create® 3 robot to resynchronize its clock.
3 |
4 | !!!warning
5 | Please note that this is a beta feature, and as such is not supported by the customer service team.
6 | Please exercise caution, as improper use of beta features may result in an inoperable robot.
7 |
8 | Selecting the "Restart ntpd" option will spawn a pop-up requesting confirmation.
9 | Restarting the ntp daemon will trigger a time resynchronization with the first time server found.
10 |
11 | This feature can also be accessed by sending a POST to `/api/restart-ntpd`.
12 |
13 | [^1]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/webserver/rmw-profile-override.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver - Override RMW Profile
2 | The Override RMW Profile page of the Create® 3 webserver allows the user to override the robot's inbuilt RMW profiles for its middleware.
3 |
4 | !!!warning
5 | Please note that this is a beta feature, and as such is not supported by the customer service team.
6 | Please exercise caution, as improper use of beta features may result in an inoperable robot.
7 |
8 | 
9 |
10 | ## Usage
11 | This page allows the user to replace the robot's middleware XML profile file with one of their choosing.
12 | Leave this box blank in order to use the robot's default profile file.
13 |
14 | !!!important
15 | After pressing "save," the application must be [restarted](../application/#restart-application).
16 |
17 | More details about the XML configuration file can be found on respective vendor sites:
18 |
19 | * [Cyclone DDS](https://github.com/eclipse-cyclonedds/cyclonedds/blob/master/docs/manual/options.md)
20 | * [Fast DDS](https://fast-dds.docs.eprosima.com/en/latest/fastdds/xml_configuration/xml_configuration.html)
21 |
22 | ## Example for Cyclone DDS
23 | Replace `INTERFACE` with interface(s) of choice (for example, `usb0,wlan0` to communicate on both the USB and Wi-Fi interfaces)
24 |
25 | ```xml
26 |
27 |
28 |
29 | INTERFACE
30 |
31 |
32 |
33 | ```
34 |
35 | ## Example for Fast DDS
36 | ```xml
37 |
38 |
39 |
40 |
41 | udp_transport
42 | UDPv4
43 | 65000
44 |
45 |
46 |
47 |
48 |
49 |
50 | udp_transport
51 |
52 | false
53 |
54 |
55 |
56 | ```
57 |
58 | [^1]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/webserver/serial-config.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver - Serial Configuration
2 | The Serial Configuration page of the Create® 3 webserver configures a feature which can forward certain USB devices over a socket.
3 |
4 | !!!warning
5 | Please note that this is a beta feature, and as such is not supported by the customer service team.
6 | Please exercise caution, as improper use of beta features may result in an inoperable robot.
7 |
8 | 
9 |
10 | To enable this feature on the robot the first time, it is necessary to navigate to this page, press save, and then reboot the robot.
11 | Subsequent saved changes on this page do not require a reboot; they simply require an unplug-plug sequence to trigger the daemon.
12 |
13 | The "TTY device to forward" box tells the Create 3 robot what device to forward; this is the device's name as it would appear in `/dev`.
14 | Plugging a supported device into the robot should produce messages in the log from the kernel, from which this device name can be found.
15 |
16 | The "baud rate" box should be set to match the device in question.
17 |
18 | The "external port number" can be set to anything, as long as it is `8883`.
19 | The port number may become more configurable when this feature comes out of beta.
20 |
21 | [^1]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/webserver/set-datetime.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver - Set Date and Time
2 | The Set Date and Time page of the Create® 3 webserver allows the user to directy change the robot's date and time.
3 |
4 | !!!warning
5 | Please note that this is a beta feature, and as such is not supported by the customer service team.
6 | Please exercise caution, as improper use of beta features may result in an inoperable robot.
7 |
8 | 
9 |
10 | The page first shows the current date and time on the robot on load.
11 | Simply change the date and time and click "save" to save.
12 |
13 | This feature can also be accessed by sending a POST to `/api/set-datetime/newdatetime={YYYY-MM-DDThh:mm:ss}`.
14 |
15 | [^1]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/webserver/set-wired-subnet.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver - Set Wired Subnet
2 | The Set Wired Subnet page of the Create® 3 webserver allows the user to change the robot's /24 subnet within the class C private address area.
3 |
4 | !!!warning
5 | Please note that this is a beta feature, and as such is not supported by the customer service team.
6 | Please exercise caution, as improper use of beta features may result in an inoperable robot.
7 |
8 |
9 | 
10 |
11 | This page allows the user to change the robot's /24 subnet within the class C private address area (192.168.nnn.0/24).
12 | After pressing "save," the robot must have its power cycled in order for the change to be made.
13 |
14 | [^1]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/webserver/update.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver - Update
2 | The update page of the Create® 3 webserver provides an interface for updating the robot's firmware.
3 |
4 | 
5 |
6 | The top of the connect page gives the robot's current firmware version, calling out the robot's current ROS 2[^1] version.
7 |
8 | When the robot is on the Internet, a button will appear at the top of the page which should cause the robot to download the most recent update from iRobot's web site and then flash it to the robot.
9 | A drop-down box is available to select the latest firmware release for available ROS 2 versions.
10 | The default selection will be the latest firmware release for the currently installed ROS 2 version.
11 |
12 | If a specific firmware version is needed, there is a hyperlink which will expand the menu in order to allow the user to upload firmware of their choosing.
13 |
14 | 
15 |
16 | Clicking the "choose file" button will allow the user to select a local firmware file; once selected, click "upload file and update" to begin the process.
17 |
18 | This video outlines the steps in detail:
19 |
20 |
25 |
26 |
27 | [^1]: ROS 2 is governed by Open Robotics
28 | [^2]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/docs/webserver/wpa-supp-override.md:
--------------------------------------------------------------------------------
1 | # iRobot® Create® 3 Webserver - Override wpa_supplicant.conf
2 | The wpa_supplicant override page of the Create® 3 webserver allows the user to replace the normal provisioning workflow by supplying a wpa_supplicant.conf file to the robot.
3 |
4 | !!!warning
5 | Please note that this is a beta feature, and as such is not supported by the customer service team.
6 | Please exercise caution, as improper use of beta features may result in an inoperable robot.
7 |
8 | 
9 |
10 | To access this page, it is necessary to manually navigate to the `/wpa-supp-override` URL on the robot.
11 | This page is not accessible from the "beta menu" because it conflicts with the normal provisioning workflow of the robot in a way that could be confusing if activated by accident.
12 |
13 | This page allows the user to directly change `wpa_supplicant.conf` on the robot.
14 | This file is read in ONLY at boot time.
15 | Any other provisioning done through the [normal workflow](../webserver/connect.md) will be ignored.
16 | After pressing "save," the robot must be rebooted for the supplied wpa_supplicant.conf file to be used.
17 | To revert to the normal provisioning workflow, either delete the text of the file from this page, save, and reboot; or factory reset the robot.
18 |
19 | Here is an example file:
20 | ```
21 | network={
22 | ssid="MyAwesomeNetwork"
23 | psk="$3kr1tP4s$w0rD!"
24 | priority=2
25 | scan_ssid=1
26 | }
27 | network={
28 | ssid=5461686c65656e53686168616e4172656e
29 | psk=e6fc52f4df9d9dfb32b149e3b6afd324d7ecc7db3852b47bb2a953d9aaca8b02
30 | priority=1
31 | scan_ssid=1
32 | }
33 |
34 | eapol_version=1
35 | fast_reauth=1
36 | ap_scan=1
37 | filter_ssids=1
38 | ctrl_interface=/var/run/wpa_supplicant
39 | ctrl_interface_group=apps
40 | ```
41 |
42 | [^1]: All trademarks mentioned are the property of their respective owners.
--------------------------------------------------------------------------------
/model_image_generation.txt:
--------------------------------------------------------------------------------
1 | numpy-stl==2.17.1
2 | Pillow==9.0.1
3 | matplotlib==3.5.1
4 | vtkplotlib==2.0.0
5 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | Jinja2==3.1.6
2 | mkdocs-macros-plugin==0.7.0
3 | GitPython==3.1.41
4 |
--------------------------------------------------------------------------------
/theme_overrides/partials/footer.html:
--------------------------------------------------------------------------------
1 | {% import "partials/language.html" as lang with context %}
2 |
--------------------------------------------------------------------------------