news 2026/5/1 11:07:20

如何分析复现一个新的Ros工作区间源码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何分析复现一个新的Ros工作区间源码

1、清理现有编译文件

1、清楚原先编译好的文件:
进入到工作区间,利用rm -rf build devel来删除
2、集合src下的.CMakeList文件内容,补充安装功能包:
sudo apt update sudo apt install ros-noetic-gmapping \ ros-noetic-map-server \ ros-noetic-navigation \ ros-noetic-octomap-ros \ ros-noetic-octomap-server \ ros-noetic-gazebo-ros-control \ ros-noetic-ros-control \ ros-noetic-ros-controllers \ ros-noetic-joint-state-publisher-gui \ libgazebo11-dev
3、重新编译catkin_make
4、如果CMake出现错误:
先删除掉原先的.catkin_workspace
然后重新初始化空间catkin_init_workspace

2、整理工作区间

1、如果能够编译成功,说明文件整体架构没问题,但是要注意:
1>工作区间的目录是否包含中文,一定要改成英文,因为对于Gazebo的模型,中文容易加载不出来,因此,这是第一个
2>工作区间目录改到主目录~/下面,方面操作
3>修改目录后,原先编译的再编译就会出错,需要删除build和devel重新编译,然后source devel/setup.bash刷新环境

3、整理环境变量

1、如果涉及到Gazebo仿真,那么对于模型的位置就要修改
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/simulation_ws/src/robot_simulation/models
可以在终端运行(生效一次),也可以放到~/.bashrc里面(永久生效,打开终端自动生效)

4、给模型穿衣服(贴图片)

1、找好图片文件放到src/config文件下
2、urdf模型里添加标签:

<gazebo reference="base_link">

<material>Gazebo/TheNumber</material>

</gazebo>
3、配置material材质文件:

# 进入功能包目录
cd ~/simulation_ws/src/robot_simulation

# 创建存放脚本和图片的标准文件夹
mkdir -p media/materials/scripts
mkdir -p media/materials/textures
# 复制图片
cp config/TheNumber.png media/materials/textures/
创建文件来定义材质:
gedit media/materials/scripts/TheNumber.material
material Gazebo/TheNumber { technique { pass { texture_unit { texture TheNumber.png } } } }
4、配置src下的package.xml文件,让ros找得到
<export>
<gazebo_ros gazebo_media_path="${prefix}"/>
</export>
5、重新编译并启动(可以不用删除之前编译的):

# 1. 关闭之前的终端
# 2. 重新编译一下(虽然改的是配置,但重新 source 比较稳妥)
cd ~/simulation_ws
catkin_make
source devel/setup.bash

# 3. 再次启动
roslaunch robot_simulation work2.launch

5、按键控制cmd_vel

1、安装功能包:
sudo apt install ros-noetic-teleop-twist-keyboard
rosrun teleop_twist_keyboard teleop_twist_keyboard.py运行节点
注意:麦克阿姆轮是可以通过切换大写键来横向或者斜向移动
2、打开RVIZ实时查看:
rosrun rviz rviz -d ~/simulation_ws/src/robot_simulation/config/2D_lidar_car.rviz
-d指的是加载现有.rviz文件参数
3、rosbag进行录制相关话题数据
cd ~/simulation_ws # 建议在工作空间下录制,方便找
rosbag record /scan /odom /tf /tf_static /cmd_vel
之后crtl+c停止会自动保存.bag文件,可以通过stat加文件名来查看信息

6、Gmapping建图

1、不需要开启Gazebo仿真,直接运行roscore
2、第二个终端:
rosparam set use_sim_time true,启动仿真时间,不用真实时间,同一终端

# 记得先 source
source ~/simulation_ws/devel/setup.bash

# 启动建图算法
roslaunch robot_simulation gmapping.launch
3、开启第三个终端:
rosrun rviz rviz -d ~/simulation_ws/src/robot_simulation/config/2D_lidar_car.rviz
4、回放数据:

cd ~/simulation_ws

# 播放数据,--clock 参数表示发布模拟时钟
rosbag play --clock 2025-12-27-08-42-34.bag
5、保存地图:

# 先进入你想保存地图的目录(通常是 map 文件夹)
cd ~/simulation_ws/src/robot_simulation/map/

# 运行地图保存命令(文件名可以自己取,比如 my_final_map)
rosrun map_server map_saver -f my_final_map
最终会得到:

  • my_final_map.pgm(图片文件)

  • my_final_map.yaml(配置文件)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 5:47:22

音乐风格迁移应用:音频模型实时推理实现路径

音乐风格迁移应用&#xff1a;音频模型实时推理实现路径 在直播平台中&#xff0c;一位用户上传了一段清唱的人声片段&#xff0c;不到200毫秒后&#xff0c;系统便返回了一段带有爵士钢琴伴奏的完整旋律——原曲的节奏与音高被完整保留&#xff0c;但整体听感已焕然一新。这种…

作者头像 李华
网站建设 2026/5/1 5:47:18

TegraRcmGUI系统注入完整教程:从设备准备到高级应用实战

TegraRcmGUI作为Nintendo Switch系统注入的图形化界面工具&#xff0c;将复杂的命令行操作转化为直观的点击流程&#xff0c;为玩家提供了从基础注入到高级定制的完整解决方案。这款C开发的GUI工具基于TegraRcmSmash技术&#xff0c;让Switch系统注入变得安全可靠。 【免费下载…

作者头像 李华
网站建设 2026/5/1 4:47:08

3个典型工作场景下的效率提升方案:从对比分析到文件同步

3个典型工作场景下的效率提升方案&#xff1a;从对比分析到文件同步 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 您是否遇到过这样的情况&#xff1a;当您需要对比两个版本的代码差异时&…

作者头像 李华
网站建设 2026/5/1 5:44:11

KeymouseGo:解放双手的跨平台自动化神器

KeymouseGo&#xff1a;解放双手的跨平台自动化神器 【免费下载链接】KeymouseGo 类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input 项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo 每天还在重复点击相同的…

作者头像 李华
网站建设 2026/5/1 4:45:53

StudioLibrary终极镜像表功能完整指南:快速实现对称动画

StudioLibrary终极镜像表功能完整指南&#xff1a;快速实现对称动画 【免费下载链接】studiolibrary Studio Library 项目地址: https://gitcode.com/gh_mirrors/st/studiolibrary StudioLibrary作为Maya中功能强大的动画管理工具&#xff0c;其镜像表功能是动画师提高工…

作者头像 李华
网站建设 2026/5/1 5:47:18

KeymouseGo完全指南:轻松实现鼠标键盘自动化操作

KeymouseGo完全指南&#xff1a;轻松实现鼠标键盘自动化操作 【免费下载链接】KeymouseGo 类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input 项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo 还在为重复性的…

作者头像 李华