ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

ROS2初步使用:做一个红色小球来回动

ROS2初步使用:做一个红色小球来回动 文章目录安装Ubuntu安装ROSVS Code环境配置初步示例程序安装Ubuntu我是用VirtualBox运行的Ubuntu2026.4。VirtualBox要求虚拟机所在磁盘必须和系统盘在一个物理磁盘当然盘符可以不一样安装时注意避免直接装在C盘。新版Ubuntu不直接提供【softwareupdates】可在命令行中安装sudoaptupdatesudoaptinstallsoftware-properties-gtk-y安装完成后打开在【Ubuntu Software】-【Download From】选【Other】-弹出窗口选China下面的镜像我这里选的是【mirrors.aliyun.com】即阿里云镜像。当然这一步设不设其实无所谓后面用到的小鱼一键安装会自动寻找最快镜像。安装ROS推荐用小鱼一键安装wgethttp://fishros.com/install-Ofishros.fishros这个脚本对新手非常友好不仅解决了国内最头疼的网络问题还贴心到预测到你不知道怎么选从而告诉你新手应该选什么简直无敌了。安装完成后在命令行中输入ros2若返回一大坨帮助信息那就说明安装成功接下来就可以来一波经典的小乌龟仿真了。ros2 run turtlesim turtlesim_node下面再打开一个终端输入下面的命令就可以进行键盘控制了ros2 run turtlesim turtle_teleop_keyVS Code环境配置据说ROS有专门的开发环境RoboWare但已经好多年不更新了目前更常见的开发环境是VS Code配合官方插件。VS Code可在官方商店安装也可以在命令行安装sudoaptinstallcode# 安装编译和代码格式化工具sudoaptinstallpython3-colcon-common-extensions clang-format装好VS Code之后可直接在扩展商店Extensions中搜索并安装【Robotics Developer Environment】插件该插件在安装时会顺手装上C/C等插件。此外最好再安装【CMake Tools】用于辅助管理 CMakeLists.txt 和构建过程。初步示例程序ROS这么大名鼎鼎的工具自然提供了可视化工具即RViz2ROS Visualizer 2。RViz2可将机器人传感器数据、模型状态、路径规划结果等各种信息显示为3D视图程序。下面做一个最简单的示例程序让一个红色小球在RViz2 的 3D 视图中从左到右来回穿梭。代码如下importrclpyfromrclpy.nodeimportNodefromvisualization_msgs.msgimportMarkerclassDrawSphereNode(Node):def__init__(self):super().__init__(draw_sphere_node)# 创建一个发布者话题名叫 my_sphereself.publisher_self.create_publisher(Marker,my_sphere,10)# 创建一个 0.1 秒触发一次的定时器self.timerself.create_timer(0.1,self.timer_callback)self.x_pos-1.0# 初始 X 坐标deftimer_callback(self):markerMarker()# 【关键】指定这个球体画在哪个坐标系下这里用默认的 map 坐标系marker.header.frame_idmapmarker.header.stampself.get_clock().now().to_msg()# 设置形状为球体 (SPHERE)marker.typeMarker.SPHERE marker.actionMarker.ADD# 设置位置 (让 X 坐标不断变化)marker.pose.position.xself.x_pos marker.pose.position.y0.0marker.pose.position.z0.5# 稍微抬高一点方便看# 姿态四元数这里不旋转所以 w1其他为0marker.pose.orientation.w1.0# 设置大小 (半径 0.2 米)marker.scale.x0.4marker.scale.y0.4marker.scale.z0.4# 设置颜色 (红色不透明度 1.0)marker.color.r1.0marker.color.g0.0marker.color.b0.0marker.color.a1.0# 发布数据self.publisher_.publish(marker)# 更新 X 坐标实现左右移动self.x_pos0.02ifself.x_pos1.0:self.x_pos-1.0defmain(argsNone):rclpy.init(argsargs)nodeDrawSphereNode()rclpy.spin(node)node.destroy_node()rclpy.shutdown()if__name____main__:main()运行chmodx draw_sphere.py python3 ./draw_sphere.py运行后什么也没有发生不要着急另开一个终端输入rviz2在RViz2打开后做如下设置在左侧Displays面板中找到Fixed Frame确保其右侧下拉框里选的是 map。点击 Displays 面板下方的 Add 按钮在弹出的窗口中选择 By topic 选项卡。找到 /my_sphere 这一项展开它选中下面的 Marker注意不是 MarkerArray然后点击右下角的 OK。
返回列表