-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #64 from j3soon/docs/website
Add document website
- Loading branch information
Showing
63 changed files
with
2,467 additions
and
1,215 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# Ref: https://squidfunk.github.io/mkdocs-material/publishing-your-site/ | ||
name: Build Documentation | ||
on: | ||
push: | ||
branches: | ||
- master | ||
- main | ||
permissions: | ||
contents: write | ||
jobs: | ||
deploy: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
# Ref: https://github.com/timvink/mkdocs-git-revision-date-localized-plugin#note-when-using-build-environments | ||
with: | ||
fetch-depth: '0' | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: 3.x | ||
- uses: actions/cache@v2 | ||
with: | ||
key: ${{ github.ref }} | ||
path: .cache | ||
- run: pip install -r requirements.txt | ||
- run: mkdocs gh-deploy --force | ||
# Ref: https://github.com/ojacques/mkdocs-git-committers-plugin-2 | ||
# Ref: https://github.com/ojacques/mkdocs-git-committers-plugin-2/issues/51#issuecomment-1951450239 | ||
env: | ||
MKDOCS_GIT_COMMITTERS_APIKEY: ${{ secrets.MKDOCS_GIT_COMMITTERS_APIKEY }} | ||
|
||
# DONE (Deploy the site): | ||
# - In the forked GitHub repo page, go to `Settings > Pages` and change `Branch` to `gh-pages`: | ||
# https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site | ||
# - Visit the site at `https://<username>.github.io/<repository>` | ||
# - For using custom domain, refer to the link below: | ||
# https://www.mkdocs.org/user-guide/deploying-your-docs/#custom-domains | ||
# - To publish the site to other platforms, refer to the link below: | ||
# https://squidfunk.github.io/mkdocs-material/publishing-your-site/ | ||
# - Take Netlify as an example, follow: | ||
# https://www.starfallprojects.co.uk/projects/deploy-host-docs/deploy-mkdocs-material-netlify/ | ||
# Make sure to also set up the secrets: | ||
# https://docs.netlify.com/environment-variables/get-started/#site-environment-variables |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,124 +1,3 @@ | ||
# aloha_ws | ||
# ROS 2 Essentials Workspace | ||
|
||
## Start Container | ||
|
||
```sh | ||
cd ~/ros2-essentials/aloha_ws/docker | ||
xhost +local:docker | ||
docker compose up | ||
# The first build will take a while (~10 mins), please wait patiently. | ||
``` | ||
|
||
The commands in the following sections assume that you are inside the Docker container: | ||
|
||
```sh | ||
# in a new terminal | ||
docker exec -it ros2-aloha-ws bash | ||
``` | ||
|
||
## View Robot Model in RViz | ||
|
||
```sh | ||
ros2 launch interbotix_xsarm_descriptions xsarm_description.launch.py robot_model:=vx300s use_joint_pub_gui:=true | ||
``` | ||
|
||
It is worth noting that `aloha_vx300s.urdf.xacro` and `vx300s.urdf.xacro` files are identical. We opt to use `vx300s` since `aloha_vx300s` seems to lack corresponding configs, such as those for MoveIt 2. | ||
|
||
![](figure/rviz.png) | ||
|
||
## View Robot Model in Gazebo | ||
|
||
```sh | ||
ros2 launch interbotix_xsarm_sim xsarm_gz_classic.launch.py robot_model:=vx300s | ||
``` | ||
|
||
## ROS 2 Control | ||
|
||
```sh | ||
ros2 launch interbotix_xsarm_control xsarm_control.launch.py robot_model:=vx300s use_sim:=true | ||
# and then use the `Interbotix Control Panel`. | ||
``` | ||
|
||
![](figure/ros2-control.png) | ||
|
||
## MoveIt 2 with RViz | ||
|
||
```sh | ||
ros2 launch interbotix_xsarm_moveit xsarm_moveit.launch.py robot_model:=vx300s hardware_type:=fake | ||
``` | ||
|
||
![](figure/moveit-rviz.png) | ||
|
||
## MoveIt 2 with Gazebo | ||
|
||
```sh | ||
ros2 launch interbotix_xsarm_moveit xsarm_moveit.launch.py robot_model:=vx300s hardware_type:=gz_classic | ||
``` | ||
|
||
![](figure/moveit-gazebo.png) | ||
|
||
## MoveIt 2 with Isaac Sim | ||
|
||
Prepare USD files: | ||
|
||
```sh | ||
cd /home/ros2-essentials/aloha_ws/isaacsim/scripts | ||
./create_urdf_from_xacro.sh | ||
python3 create_vx300s_from_urdf.py | ||
python3 create_vx300s_with_omnigraph.py | ||
``` | ||
|
||
and run: | ||
|
||
```sh | ||
ros2 launch interbotix_xsarm_moveit xsarm_moveit.launch.py robot_model:=vx300s hardware_type:=isaac | ||
# and then move the target and use the `MotionPlanning` panel. | ||
``` | ||
|
||
![](figure/moveit-isaacsim.png) | ||
|
||
### Debugging with Isaac Sim | ||
|
||
The Isaac Sim app can be launched with: | ||
|
||
```sh | ||
isaacsim omni.isaac.sim | ||
``` | ||
|
||
Keep in mind that the standalone scripts can be easily debugged in Isaac Sim's `Script Editor`. | ||
Simply copy the code, omitting anything related to SimulationApp (remove the beginning and end), | ||
and paste to the `Script Editor` and run it. | ||
|
||
To open pre-configured USD file with OmniGraph: | ||
|
||
- `File > Open` and click `My Computer`, then in `File name:` type: | ||
``` | ||
/home/ros2-essentials/aloha_ws/isaacsim/assets/vx300s_og.usd | ||
``` | ||
- Click `Window > Visual Scripting > Action Graph` | ||
- In the `Action Graph` tab, click `Edit Action Graph` and select `/ActionGraph` | ||
- Click `Play (SPACE)` | ||
|
||
View the current joint states: | ||
|
||
```sh | ||
# in a new terminal | ||
docker exec -it ros2-aloha-ws bash | ||
ros2 topic echo /vx300s/joint_states | ||
``` | ||
|
||
A specific world can also be directly launched and played with: | ||
|
||
```sh | ||
isaacsim omni.isaac.sim --exec '/home/ros2-essentials/aloha_ws/isaacsim/scripts/open_isaacsim_stage.py --path /home/ros2-essentials/aloha_ws/isaacsim/assets/vx300s_og.usd' | ||
``` | ||
|
||
To access Nucleus from Isaac Sim, you should [install Nucleus](https://docs.omniverse.nvidia.com/nucleus/latest/workstation/installation.html) with default username/password `admin:admin` on your host machine or connect to an external Nucleus server. | ||
|
||
## References | ||
|
||
- [Interbotix X-Series Arms \| Trossen Robotics Documentation](https://docs.trossenrobotics.com/interbotix_xsarms_docs/index.html) | ||
- [ROS 2 Interface](https://docs.trossenrobotics.com/interbotix_xsarms_docs/ros_interface/ros2.html) | ||
- [ROS 2 Standard Software Setup](https://docs.trossenrobotics.com/interbotix_xsarms_docs/ros_interface/ros2/software_setup.html) | ||
- [ROS 2 Open Source Packages](https://docs.trossenrobotics.com/interbotix_xsarms_docs/ros2_packages.html) | ||
- [Stationary ALOHA Software Setup \| Trossen Robotics Documentation](https://docs.trossenrobotics.com/aloha_docs/getting_started/stationary/software_setup.html) | ||
Please visit <https://j3soon.github.io/ros2-essentials/> for documentation. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,78 +1,3 @@ | ||
# ROS2 Cartographer | ||
# ROS 2 Essentials Workspace | ||
|
||
### Run with docker | ||
|
||
```bash | ||
git clone https://github.com/j3soon/ros2-essentials.git | ||
``` | ||
|
||
```bash | ||
cd ros2-essentials/cartographer_ws/docker | ||
docker compose pull | ||
docker compose up -d --build | ||
``` | ||
|
||
### Simple Test With Turtlebot3 | ||
|
||
- Attach to the container | ||
|
||
```sh | ||
docker attach ros2-cartographer-ws | ||
cd /home/ros2-essentials/cartographer_ws | ||
``` | ||
- Open the turtlebot simulation in `tmux` | ||
|
||
```bash | ||
export TURTLEBOT3_MODEL=burger | ||
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py | ||
``` | ||
- Run the SLAM node in new window of `tmux` | ||
|
||
```bash | ||
ros2 launch turtlebot3_cartographer cartographer.launch.py is_sim:=True | ||
``` | ||
- Run the control tool in new window of `tmux` | ||
|
||
```bash | ||
rqt_robot_steering | ||
``` | ||
|
||
### Building Packages | ||
|
||
```sh | ||
docker attach ros2-cartographer-ws | ||
cd /home/ros2-essentials/cartographer_ws | ||
rosdep update | ||
rosdep install --from-paths src --ignore-src --rosdistro humble -y | ||
colcon build | ||
``` | ||
|
||
> After the build process, make sure to source the `install/setup.bash` file. | ||
> Otherwise, ROS2 will not locate the executable files. You can open a new terminal to accomplish this. | ||
|
||
### Multi LiDAR - Single Robot SLAM test | ||
|
||
#### Simulation | ||
|
||
- multi_lidar_desp package: Description of a robot with multiple LiDARs. | ||
- multi_lidar_gazebo package: Gazebo simulation of the robot with robot state publisher. | ||
|
||
```bash | ||
ros2 launch multi_lidar_gazebo multi_lidar_gazebo.launch.py | ||
``` | ||
|
||
#### Run the SLAM node | ||
|
||
- Run the cartographer SLAM node in new window of `tmux` | ||
```bash | ||
ros2 launch cartographer_demo cartographer_demo.launch.py is_sim:=True | ||
``` | ||
|
||
- Run the control tool in new window of `tmux` | ||
```bash | ||
rqt_robot_steering | ||
``` | ||
|
||
#### References | ||
|
||
- [Cartographer Demo](https://google-cartographer-ros.readthedocs.io/en/latest/demos.html) | ||
Please visit <https://j3soon.github.io/ros2-essentials/> for documentation. |
Oops, something went wrong.