參考資料
版本簡介: ros2 humble 配套的是 ignition gazebo 6 (Fortress)
但是 gz-sim8 (Harmonic) LTS 支持時間更久,而且后續(xù)版本命令前綴由ign又變回gz, 所以最終選擇 gz-sim8
ubuntu source
安裝慢在這里換ros源解決
https://mirrors-i.tuna.tsinghua.edu.cn/help/ubuntu/
https://mirrors.tuna.tsinghua.edu.cn/help/ros2/
install gazebo
https://gazebosim.org/home
https://gazebosim.org/docs/fortress/install_ubuntu/
https://gazebosim.org/docs/harmonic/install_ubuntu/
install ros pkgs
rosdepc
http://fishros.com/install
rosdepc update
sudo apt install ros-humble-ros-ign-bridge ros-humble-ros-ign-gazebo ros-humble-realsense2-description
模型下載
https://app.gazebosim.org/fuel/models
機器人運行例程
https://github.com/ava-orange-education/Ultimate-Robotics-Programming-with-ROS2-and-Python
語義分割/實例分割相機
https://github.com/gazebosim/gz-sensors
分支切換到 ign-sensors6, tutorials/segmentation_camera.md
自動標注點云
https://github.com/mariusud/semantic_labelling_ros
編譯運行
colcon build --packages-select nav2_mobile_robot
ros2 launch nav2_mobile_robot nav2_mobile_robot_gazebo.launch.py
ros2 topic pub /cmd_vel -1 geometry_msgs/msg/Twist "linear:
x: 0.2
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.1"
問題處理
- xacro plugin 只聲明一次
- xacro 傳感器名字不能重復
模型學習
panda_demo 機械臂
Ignition ROS 2 CI 湖中的古鎮(zhèn)建筑,天空和樹
Warehouse 差速小車,有燈光
Edifice demo 人機械臂桌子電風扇麥輪車相機插件
industrial-warehouse 1 垃圾桶地牛貨架貨物地板可移動
遷移版本從 fortress -> harmonic
# apt
sudo apt remove ignition-fortress && sudo apt autoremove
sudo apt-get install gz-harmonic
# 卸載6的控制器插件
sudo apt remove ros-humble-ign-ros2-control*
# 安裝8的控制器
sudo apt install ros-humble-gz-ros2-control
# launch
ign_resource_path = SetEnvironmentVariable(
name="IGN_GAZEBO_RESOURCE_PATH", value=[os.path.join(pkg_nav2_mobile_robot)]
)
gz_resource_path = SetEnvironmentVariable(
name="GZ_SIM_RESOURCE_PATH", value=[os.path.join(pkg_nav2_mobile_robot)]
)
ignition_gazebo_node = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
[
PathJoinSubstitution(
[FindPackageShare("ros_gz_sim"), "launch", "gz_sim.launch.py"]
)
]
),
launch_arguments=[("gz_args", [" -r -v 4 maze.sdf"]), ("gz_version", "6")],
)
# ros_gz
https://discourse.openrobotics.org/t/will-gazebo-harmonic-ever-be-recommended-for-ros2-humble/48820/2
回答的意思是非最佳支持版本可能需要手動編譯ros_gz
https://github.com/gazebosim/ros_gz
但是apt中能搜到二進制匹配版本,直接安裝就好
sudo apt install ros-humble-ros-gzharmonic*
# gz_sensors
xacro: ignition_frame_id -> gz_frame_id
sudo apt install ros-humble-tf2-tools ros-humble-rqt-tf-tree
rqt --clear-config
# realsense2
sudo apt install ros-humble-realsense2-description
安裝gz-sim8 harmonic
# https://gazebosim.org/docs/harmonic/install_ubuntu/
sudo apt-get install gz-harmonic
sudo apt install ros-humble-ros-gzharmonic*
sudo apt install ros-humble-realsense2-description
源碼編譯gz-sim8 harmonic
遇到一個問題,xacro添加的joint_controller 在控制越界后會卡住,查詢github issue得知是仿真引擎問題。想通過修改joint_controller源碼解決,先嘗試源碼編譯
# https://gazebosim.org/docs/harmonic/install_ubuntu_src/
# 卸載舊的
sudo apt remove gz-fortress && sudo apt autoremove
sudo apt remove gz-harmonic && sudo apt autoremove
sudo apt remove gz-* gazebo* ignition-* ros-*-ros-gz* ros-*-ros-gz-sim* libgz-* gz-tools2 && sudo apt autoremove
# 下載vcstool導入所有源碼
sudo apt-get install python3-vcstool python3-colcon-common-extensions
cd gzsim/src
curl -O https://raw.githubusercontent.com/gazebo-tooling/gazebodistro/master/collection-harmonic.yaml
vcs import < collection-harmonic.yaml
# 下載依賴
cd gzsim/src
sudo curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null
sudo apt-get update && sudo apt -y install \
$(sort -u $(find . -iname 'packages-'`lsb_release -cs`'.apt' -o -iname 'packages.apt' | grep -v '/\.git/') | sed '/gz\|sdf/d' | tr '\n' ' ')
# 編譯
cd gzsim
colcon graph
colcon build --cmake-args ' -DBUILD_TESTING=OFF' --merge-install