ROS_Navigation专题1 - Introduction and Learning

ROS_Navigation专题1 - Introduction and Learning Resources

  Before going further, it is highly recommended that the reader check out the NavigationRobot Setup tutorial on the ROS Wiki.
  This tutorial provides an excellent overview of the ROS navigation stack.
  For an even better understanding, check out all of the Navigation Tutorials.
  And for a superb introduction to the mathematics underlying SLAM, check out Sebastian Thrun's onlineArtificial Intelligence course on Udacity.

  If you own a TurtleBot, you might want to skip directly to the TurtleBot SLAM tutorial on the ROS Wiki.
  Another affordable SLAM robot is the Neato XV-11 vacuum cleaner which includes a 360-degree laser scanner. In fact, you can run the complete Navigation Stack using the XV-11 thanks to the neato_robot ROS stack by Michael Ferguson.

In this special subject, we will cover the three essential ROS packages that make up the core of the Navigation Stack:

  • move_base for moving the robot to a goal pose within a given reference frame
  • gmapping for creating a map from laser scan data (or simulated laser data from a depth camera)
  • amcl for localization using an existing map
----
In this case, I fell that starting from ROS  Navigation Tutorials could be a better way to learn.
----
So I will follow the outline below:

1. Navigation is an ROS stack named as "Navigation"

   It contains packages listed as below:
   amcl*
   base_local_planner
   carrot_planner
   clear_costmap_recovery
   costmap_2d
   dwa_local_planner
   fake_localization
   global_planner
   map_server*
   move_base*
   move_base_msgs
   move_slow_and_clear
 &nbs
dwh@PC:~/carla-ros-bridge/catkin_ws$ catkin_make # 或 catkin build(若使用catkin_tools) Base path: /home/dwh/carla-ros-bridge/catkin_ws Source space: /home/dwh/carla-ros-bridge/catkin_ws/src Build space: /home/dwh/carla-ros-bridge/catkin_ws/build Devel space: /home/dwh/carla-ros-bridge/catkin_ws/devel Install space: /home/dwh/carla-ros-bridge/catkin_ws/install Multiple packages found with the same name "carla_ackermann_control": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_ackermann_control - ros-bridge/carla_ackermann_control Multiple packages found with the same name "carla_ackermann_msgs": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_ackermann_msgs - ros-bridge/carla_ackermann_msgs Multiple packages found with the same name "carla_ad_agent": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_ad_agent - ros-bridge/carla_ad_agent Multiple packages found with the same name "carla_ad_demo": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_ad_demo - ros-bridge/carla_ad_demo Multiple packages found with the same name "carla_common": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_common - ros-bridge/carla_common Multiple packages found with the same name "carla_manual_control": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_manual_control - ros-bridge/carla_manual_control Multiple packages found with the same name "carla_msgs": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_msgs - ros-bridge/carla_msgs Multiple packages found with the same name "carla_ros_bridge": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_ros_bridge - ros-bridge/carla_ros_bridge Multiple packages found with the same name "carla_ros_scenario_runner": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_ros_scenario_runner - ros-bridge/carla_ros_scenario_runner Multiple packages found with the same name "carla_ros_scenario_runner_types": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_ros_scenario_runner_types - ros-bridge/carla_ros_scenario_runner_types Multiple packages found with the same name "carla_spawn_objects": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_spawn_objects - ros-bridge/carla_spawn_objects Multiple packages found with the same name "carla_twist_to_control": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_twist_to_control - ros-bridge/carla_twist_to_control Multiple packages found with the same name "carla_walker_agent": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_walker_agent - ros-bridge/carla_walker_agent Multiple packages found with the same name "carla_waypoint_publisher": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_waypoint_publisher - ros-bridge/carla_waypoint_publisher Multiple packages found with the same name "carla_waypoint_types": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_waypoint_types - ros-bridge/carla_waypoint_types Multiple packages found with the same name "pcl_recorder": - ros-bridge/carla-ros-bridge/src/ros-bridge/pcl_recorder - ros-bridge/pcl_recorder Multiple packages found with the same name "ros_compatibility": - ros-bridge/carla-ros-bridge/src/ros-bridge/ros_compatibility - ros-bridge/ros_compatibility Multiple packages found with the same name "rqt_carla_control": - ros-bridge/carla-ros-bridge/src/ros-bridge/rqt_carla_control - ros-bridge/rqt_carla_control Multiple packages found with the same name "rviz_carla_plugin": - ros-bridge/carla-ros-bridge/src/ros-bridge/rviz_carla_plugin - ros-bridge/rviz_carla_plugin dwh@PC:~/carla-ros-bridge/catkin_ws$ source devel/setup.bash bash: devel/setup.bash: 没有那个文件或目录
最新发布
03-19
<think>嗯,用户在使用catkin_make编译Carla ROS Bridge时遇到了多个同名包的问题,并且在编译后无法找到devel/setup.bash文件。首先,我需要分析这些同名包的原因。可能的情况是用户的工作空间中有重复的包路径,导致编译系统无法正确处理。例如,用户可能克隆了仓库到不同的目录,或者子模块嵌套导致路径重复。 接下来,用户执行source devel/setup.bash时提示文件不存在,这通常意味着编译没有成功完成,因此devel目录没有被正确生成。编译失败的原因很可能就是前面提到的重复包问题,导致catkin_make中途停止,从而没有生成必要的setup文件。 需要指导用户如何解决这些重复包的问题。首先应该检查工作空间中的src目录,查找是否有重复的包路径。例如,用户可能同时有ros-bridge/carla-ros-bridge/src/ros-bridge/...和ros-bridge/...这样的路径,这会导致catkin工具发现多个同名包,进而报错。 解决方法包括清理重复的包,可能通过移除重复的目录或调整工作空间的结构。另外,用户可能需要检查是否正确地克隆了子模块,或者是否有误操作导致包被复制到错误的位置。建议用户手动删除重复的包目录,然后重新运行catkin_make,确保编译过程顺利完成,从而生成devel/setup.bash文件。 此外,还需要提醒用户在编译成功后正确source环境变量,以确保ROS能够识别新编译的包。如果用户使用catkin build命令,可能需要使用不同的目录结构,但当前问题主要是重复包导致的编译失败,因此重点应放在解决路径冲突上。</think>在运行`catkin_make`时出现多个同名ROS包冲突的问题,这会导致编译失败。以下是逐步解决此问题的方法: --- ### **问题分析** 错误信息显示**同一工作空间(workspace)中存在多个同名ROS包**,例如: ``` Multiple packages found with the same name "carla_ackermann_control": - ros-bridge/carla-ros-bridge/src/ros-bridge/carla_ackermann_control - ros-bridge/carla_ackermann_control ``` 原因是工作空间的`src`目录中存在重复的包路径。这通常由以下原因导致: 1. **错误地克隆仓库**:可能重复克隆了Carla ROS Bridge的子模块。 2. **子模块嵌套问题**:`carla-ros-bridge`可能自身包含子模块,与其他手动克隆的包冲突。 --- ### **解决方案** #### **步骤1:清理重复的包** 进入工作空间的`src`目录,手动删除重复的包: ```bash cd ~/carla-ros-bridge/catkin_ws/src # 删除所有重复路径的包(根据错误提示选择保留一个) # 例如:保留 "ros-bridge/carla-ros-bridge/src/ros-bridge/carla_ackermann_control" # 删除 "ros-bridge/carla_ackermann_control" rm -rf ros-bridge/carla_ackermann_control rm -rf ros-bridge/carla_ackermann_msgs # 其他重复包同理 ``` #### **步骤2:确保子模块正确初始化** 如果使用了Git子模块,需重新初始化: ```bash cd ~/carla-ros-bridge/catkin_ws/src git submodule update --init --recursive ``` #### **步骤3:重新编译** 清理之前的编译缓存并重新编译: ```bash cd ~/carla-ros-bridge/catkin_ws catkin clean -y # 若使用catkin_tools catkin_make ``` #### **步骤4:Source环境变量** 编译成功后,`devel/setup.bash`会自动生成: ```bash source devel/setup.bash ``` --- ### **注意事项** 1. **路径规范**:确保`src`目录中的包路径唯一,避免嵌套或重复克隆。 2. **子模块管理**:若从Git仓库克隆,建议使用`git submodule`统一管理依赖。 3. **编译失败排查**:若编译仍失败,检查终端输出的具体错误信息(如依赖缺失)。 --- ### **补充说明** - **`catkin_make` vs `catkin build`**:若使用`catkin_tools`工具链,建议使用`catkin build`,它能更好地处理复杂包依赖。 - **工作空间结构**:标准ROS工作空间结构应确保所有包位于`src`目录下,且无重复名称。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值