利用ROS2实现小海龟画圈————总共给出了Python版和C++版
README中以C++举例
- 安装 VirtualBox
VirtualBox 官网下载地址 建议安装到D盘
VirtualBox是一款开源虚拟机软件,可以利用它在你的计算机上再安装其他操作系统,比如Ros2所需要的Linux操作系统。 - 安装 Ubuntu系统
这里采用的是Ubantu22.04系统,一般把基于Linux内核的操作系统都称为Linux系统,而Ubantu就是以桌面应用为主的Linux操作系统之一。
Ubuntu 下载镜像地址
找到这个ubuntu-22.04.5-desktop-amd64.iso版本,点击下载即可。
(1)下载好了以后,点击VirtualBox中的新建,输入名称Ubuntu22,选择下载好的Ubuntu所在的文件夹,找到Ubuntu,再点击跳过自动安装,如下图所示:
(2)按下图配置好CPU内存,点击下一步。
(3)再按下图配置好虚拟硬盘大小,点击下一步。

(4)确认信息无误后,点击完成。

(5)回到虚拟机主页面,点击启动,这个时候鼠标不能用,可以用键盘上下键来选中Try or install Ubuntu

(6)点击捕获,然后回车

(7)进入Ubuntu界面,选择中文简体,然后点击安装Ubuntu

(8)为了简化,选择最小安装,其他全取消,点击继续

(9)安装类型,由于只有一个磁盘选择第一个;如果双系统的话,选择第二个;再点击现在安装。

(10)点击继续

(11)选择地区,点击继续

(12)输入个人信息和密码,这里尽量不要出现中文,以英文字母就行,不用太长,密码要尽可能简单一点,防止忘记。

(13)安装完成,点击现在重启

(14)按回车键

(15)后面输入密码,就可以进入
注意事项
(1)虚拟硬盘可以给大一点,实际并不会占用那么大,但后期想调整就有点困难了。
(2)密码一定要记住,可以输一个简单的,后期输起来也方便。
- 安装 ROS2
在Ubuntu中安装ROS2,可以通过Ctrl+shift+T打开终端使用一键安装指令wget http://fishros.com/install -O fishros && . fishros
(1)输入2,不更换继续安装

(2)输入1,选择humble(Ros2)

(3)输入1,选择humble(Ros2)桌面版

(4)输入密码,即可完成安装
(5)检测ROS2安装成功与否

(6)查找ROS2安装路径,输入whereis ros2,有路径证明安装成功。

- 打开小海龟模拟器
在Ubuntu系统里Ctrl+Alt+T打开终端,输入ros2 run turtlesim turtlesim_node打开小海龟模拟器。 - 在Vscode中创建功能包,并实现话题的发布与订阅
(1)vscode中src目录下打开终端,输入ros2 pkg create demo_cpp_topic --build-type ament_cmake --dependencies rclcpp geometry_msg turtlesim --lincense Apache-2.0然后回车,创建功能包。
(2)在demo_cpp_topic的src目录下创建turtle_circle.cpp文件,并在其中写C++代码实现小海龟画圈,如下所示:#include<rclcpp/rclcpp.hpp> #include"geometry_msgs/msg/twist.hpp" #include"chrono" class TurtleCircleNode: public rclcpp::Node { private: rclcpp::TimerBase::SharedPtr timer_; rclcpp::Publicsher<geometry_msgs::msg::Twist>::SharedPtr Publicsher_; //发布者的智能指针 public: explicit TurtleCircleNode(const std::string& node_name):Node(node_name) { publicher_ = this->create_publisher<geometry_msgs::msg::Twist>("turtle1_cmd_vel", 10); timer_ = this->create_wall_timer(1000ms,std::bind(&TurtleCircleNode::timer_callback,this)); } void timer_callback() { auto msg = geometry_msgs::msg::Twist(); msg.linear.x = 1.0; msg.linear.z = 0.5; publisher_->publish(msg); } } ; int main(int argc,char* argv[]) { rclcpp::init(argc,argv); auto node = std::make_shared<TurtleCircleNode>("turtle_node"); rclcpp::spin(node); rclcpp::shutdown(); }
- 添加依赖和可执行文件
在demo_cpp_topic/src目录下找到CMakeList.txt文件,并打开。在其中添加add_executable(turtle_circle src/turtle_circle),
ament_target_dependencies(turtle_circle rclcpp geometry_msgs),
install(TARGETS turtle_circle DESTINATION lib/$(PROJECT_NAME)) - 运行测试
(1)在回到工作空间目录打开终端,输入colcon build构造可执行文件
(2)利用source install/setup.bash添加环境变量
(3)利用命令ros2 run demo_cpp_topic turtle_circle运行
最后,打开海龟模拟器,就可以看见小海龟转圈。