# Ros2Study **Repository Path**: wrdoct/ros2-study ## Basic Information - **Project Name**: Ros2Study - **Description**: Ros2Study - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-02 - **Last Updated**: 2025-02-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README wget http://fishros.com/install -O fishros && . fishros 选择humble版本的ROS2即可 # 安装的是humble版本的ROS,所以安装目录在/opt/ros/humble下 echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc sudo apt remove ros-humble-* sudo apt autoremove ``` mkdir src cd src/ ros2 pkg create example_cpp --build-type ament_cmake --dependencies rclcpp --license Apache-2.0 cd example_cpp/src touch node_01.cpp cd ../../.. colcon build --packages-select example_cpp source install/setup.bash ros2 run example_cpp node_03 ``` # 3D旋转可视化: ``` sudo apt install ros-humble-mrpt2 -y 3d-rotation-converter ``` # 查看TF树: ``` ros2 run tf2_tools view_frames ``` 直接看tf树: ros2 run rqt_tf_tree rqt_tf_tree(需要先安装sudo apt-get install ros-humble-rqt-tf-tree) 运行时后面加上 & 可以在后台执行 # 数据可视化工具 rviz2 # 数据记录工具 ros2 bag ros2 bag record /turtle1/cmd_vel ros2 bag play rosbag2_2024_12_10-09_42_14/ # 使用URDF创建机器人 llw@llwubuntuserver:~/git/ros2-study/chapt6/src/fishbot_description/urdf$ urdf_to_graphviz first_robot.urdf 以下两个插件可以读取urdf中的关节配置 sudo apt install ros-$ROS_DISTRO-joint-state-publisher sudo apt install ros-$ROS_DISTRO-robot-state-publisher Xacro(XML Macro)是基于XML的宏语言,用于简化URDF文件的创建和维护。 使用工具将xacro文件转为urdf sudo apt install ros-$ROS_DISTRO-xacro xacro /home/llw/git/ros2-study/chapt6/src/fishbot_description/urdf/first_robot.xacro ros2 launch fishbot_description display_robot.launch.py model:=/home/llw/git/ros2-study/chapt6/src/fishbot_description/urdf/fishbot/fishbot.urdf.xacro # 在Gazebo中完成机器人仿真 sudo apt install gazebo 之后输入 gazebo 打开 下载模型 mkdir -p ~/.gazebo cd ~/.gazebo/ git clone https://gitee.com/ohhuo/gazebo_models.git ~/.gazebo/models rm -rf ~/.gazebo/models/.git # 防止把.git误识别为模型 # 在Gazebo中加载机器人模型 sudo apt install ros-$ROS_DISTRO-gazebo-ros-pkgs ros2 launch fishbot_description gazebo_sim.launch.py # 使用两轮差速插件控制机器人 ros2 launch fishbot_description gazebo_sim.launch.py ros2 run teleop_twist_keyboard teleop_twist_keyboard # 使用ros2_control驱动机器人 sudo apt install ros-$ROS_DISTRO-ros2-control sudo apt info ros-$ROS_DISTRO-ros2-controllers sudo apt install ros-$ROS_DISTRO-ros2-controllers # 使用Gazebo接入ros2_control sudo apt install ros-$ROS_DISTRO-gazebo-ros2-control # 使用关节状态发布控制器 ros2 control load_controller fishbot_joint_state_broadcaster --set-state active llw@llwubuntuserver:~/git/ros2-study/chapt6$ ros2 control list_controllers fishbot_joint_state_broadcaster joint_state_broadcaster/JointStateBroadcaster active llw@llwubuntuserver:~/git/ros2-study/chapt6$ ros2 control set_controller_state fishbot_joint_state_broadcaster inactive ros2 control unload_controller fishbot_joint_state_broadcaster # 使用力控制器控制轮子 ros2 topic list -t | grep effort ros2 topipub /fishbot_effort_controller/commands std_msgs/msg/Float64MultiArray "{data: [0.0001, 0.0001]}" # 使用两轮差速控制器控制机器人 ros2 run teleop_twist_keyboard teleop_twist_keyboard # 默认发布的是 /cmd_vel 话题 # 构建第一张导航地图 sudo apt install ros-$ROS_DISTRO-slam-toolbox ros2 launch slam_toolbox online_async_launch.py use_sim_time:=True # use_sim_time:=True 表示使用仿真时间 # 将地图保存为文件 sudo apt install ros-$ROS_DISTRO-nav2-map-server ros2 run nav2_map_server map_saver_cli -f room # Navigation2安装与使用 sudo apt install ros-$ROS_DISTRO-navigation2 sudo apt install ros-$ROS_DISTRO-nav2-bringup sudo apt install ros-$ROS_DISTRO-nav2-bringup ros-$ROS_DISTRO-slam-toolbox sudo apt install ros-$ROS_DISTRO-robot-state-publisher ros-$ROS_DISTRO-joint-state-publisher ros-$ROS_DISTRO-gazebo-ros-pkgs ros-$ROS_DISTRO-ros2-controllers ros-$ROS_DISTRO-xacro cp /opt/ros/humble/share/nav2_bringup/params/nav2_params.yaml src/fishbot_navigation2/config/ # 安装语音合成和图像相关功能包 sudo apt install python3-pip -y sudo apt install espeak-ng -y sudo pip3 install espeakng sudo apt install ros-$ROS_DISTRO-tf-transformations sudo pip3 install transforms3d