1.Cartographer ROS编译安装及相关可执行文件理解
2.Ubuntu20.04+ros的源码环境适配安装Moveit
3.学习笔记ROS2纯小白 - Beginner:Client libraries(一):工作空间与包
4.ROS学习笔记@ROS安装
5.Ubuntu22.04 安装 Ros1 Noetic
6.Turtlebot3 入门教程-PC软件设置
Cartographer ROS编译安装及相关可执行文件理解
一、编译安装Cartographer ROS
为了安装 Cartographer ROS,源码首先需要确保ROS版本为kinetic,源码操作系统为Ubuntu.,源码并创建一个名为catkin_ws的源码工作空间。
安装所需的源码postsql源码查看工具和依赖项,包括wstool、源码rosdep、源码ninja。源码然后,源码通过catkin_make工具构建并安装cartographer_ros。源码
加载数据包进行测试,源码运行launch和rosbag,源码最终可以生成slam图。源码
二、源码编译方法
编译Cartographer ROS时,使用catkin_make命令,这简化了catkin的标准工作流程,依次调用cmake、make和make install。
编译后的工作空间内将有src、build_isolated、devel_isolated、install_isolated等文件夹,分别用于源代码、孤立编译、开发和安装。
三、install_isolated内可执行文件
在install_isolated文件夹内,Gcexcel源码有多种可执行文件,如cartographer_assets_writer、cartographer_autogenerate_ground_truth、cartographer_compute_relations_metrics、cartographer_dev_rosbag_publisher等。
cartographer_assets_writer用于保存和使用有效资源;cartographer_autogenerate_ground_truth自动生成期望的真实输出;cartographer_compute_relations_metrics计算相关指标。
cartographer_dev_rosbag_publisher发布rosbag信息,用于数据收集与分析;cartographer_dev_trajectory_comparison进行轨迹比较;cartographer_migrate_serialization_format迁移序列化格式。
cartographer_node为ROS中的核心节点,负责实时SLAM;cartographer_occupancy_grid_node构建并发布ROS的occupancy_grid地图;cartographer_offline_node进行离线SLAM。
cartographer_pbstream_map_publisher创建静态占据栅格;cartographer_pbstream_to_ros_map将pbstream格式转换为标准ROS格式地图;cartographer_rosbag_validate验证rosbag数据。
cartographer_start_trajectory用于在本地化模式中设置起始位姿。
通过这些工具和节点,Cartographer ROS提供了一个全面的SLAM解决方案,包括数据收集、处理、验证和应用。
Ubuntu.+ros的环境适配安装Moveit
进入年月,机械臂领域竞争激烈,升级至Ubuntu.系统与ROS环境适配安装Moveit,以确保紧跟行业发展。
主题直入:在系统版本的选择上,网上推荐多为Ubuntu.,对应ROS版本一般为melodic。但若追求系统升级,Ubuntu.更为合适。原因在于,官方明确推荐此版本,snapkit源码适配性问题相对较少。
安装前需做好环境配置,参照官方文档进行。
安装Moveit库时,无需担心版本不匹配问题。Ubuntu.的ROS noetic版本已提供专门库,简化安装流程。
工作空间与代码准备,确认ROS环境设置。
设置环境变量ROS_DISTRO,以便进行源码安装。
选择官方推荐方式安装源码,或备选方案,根据网络环境灵活调整。
对于moveit.rosinstall,可根据需要单独下载对应分支,确保使用专门针对noetic版本的仓库。
安装ccache编译器缓存(可选步骤),以提升编译效率。
项目编译完成后,即可进入演示阶段。
进行演示程序测试,启动后发现界面空白,需检查是否正确添加显示内容。
左下角的“add”选项,用于添加MotionPlanning功能。
添加机械臂后,开始学习操作流程,setfattr源码逐步掌握Moveit的使用。
学习笔记ROS2纯小白 - Beginner:Client libraries(一):工作空间与包
在学校的实验课上,我遇到了关于ROS2项目结构的困惑。原本以为修改源代码并重构后,小车应运行新的CV程序,但实际上并非如此。这让我意识到基础知识的重要性,尤其是在理论课程与实验课程之间需要平衡,或者提供更易学习的教程。查阅官方文档后,我终于理解了ROS2项目的基本结构,比如工作空间和包的组织方式。
工作空间由src目录作为核心,colcon会在其周围创建build、install和log子目录。build存储中间文件,install用于安装包,log记录colcon调用的日志。不同于catkin,colcon的工作目录不包含devel路径。使用colcon构建工作空间时,首先创建名为ros2_ws的目录,接着添加源代码,如从GitHub克隆。
源代码时,需要区分underlay(已有的ROS2依赖)和overlay(新创建的工作空间)。通过source命令配置环境,colcon允许在source空间修改非编译资源,ailabel源码如Python文件,以加快迭代。每次开发调试,都会执行colcon build来构建工作空间。
运行测试时,部分包出现stderr输出,这可能源于Python包中的setuptools库,尽管有警告但不影响正常使用。为了运行示例程序,需要正确配置环境并执行相应的publisher和subscriber。
对于开发自己的包,colcon支持ament_cmake、ament_python和纯CMake。ament_cmake和ament_python示例展示了如何创建和使用这些包。colcon_cd工具可以帮助快速切换到特定包的目录,而colcon tab completion支持命令补全。
在ROS2开发中,统一的构建工具ament_tools替代了ROS 1中的catkin工具,简化了团队协作。rosdep则用于管理和识别依赖项,便于安装和构建。需要注意的是,rosdep的使用可能会因为网络问题而遇到问题,可通过特定方法解决。
创建工作空间时,理解包的结构和许可证信息至关重要。包是代码共享的基本单元,包含package.xml和CMakeLists.txt,可以是CMake、Python或其他编写方式。工作空间中包含多个包,它们独立但共存,推荐在src目录下存放所有包。
ROS学习笔记@ROS安装
安装ROS前的准备工作:确保Cmake版本 安装ROS前,务必检查电脑上是否已安装Cmake。如果安装了新版本,需避免版本冲突,可选择在安装ROS后安装所需的Cmake版本。要指定特定版本的cmake,需要相应操作。 选择适合的ROS版本 不同Ubuntu版本对应不同的ROS版本,如Ubuntu .对应RS Melodic。务必确保安装正确的版本,可通过ROS Wiki查阅对应信息。安装步骤
1. 更新软件源与添加ROS源 确保Ubuntu软件源的更新,并更换为国内源,如阿里云、清华或中科大,以提高下载速度。 2. 设置ROS安装密钥 公钥是ROS安装的重要环节,需执行特定命令获取并设置。 3-4. 更新软件源与安装ROS 更新Ubuntu源后,安装ROS桌面完整版,包括ROS、rqt、rviz等,以及基础库。 5. 设置环境变量和安装ROS工具 设置ROS环境变量,便于在新shell中自动激活。同时,安装ROS的构建和管理工具,如rosinstall。 6. 初始化rosdep rosdep是ROS开发中的必备工具,通过特定命令初始化并可能需要更新。 7. 避免网络问题:解决rosdep更新问题 如果遇到更新超时,可通过修改hosts和resolv.conf,或本地下载更新文件来解决。安装检查
运行小海龟和rviz以验证安装 通过运行roscore和相关命令,测试ROS核心功能如小海龟和rviz的运行情况。 源码安装与后续学习 对于源码安装,可参考Melodic版本的Source安装文档,以及相关教程,如博客文章。Ubuntu. 安装 Ros1 Noetic
在Ubuntu .系统上安装Ros1 Noetic并不直接支持apt安装,因为Ros官方已停止对Ros1的官方适配。不过,可以通过源码编译的方式在Ubuntu 上运行。以下是具体步骤:
1. **添加Ros2源**:首先,你需要通过Ros2 Humble的官方指南添加Ros2的官方源,尽管这不是安装Ros1的直接步骤。
2. **内核版本考虑**:Ubuntu 的内核版本5.已相对过时,可能不适用于年后的硬件,因此在安装时需要考虑升级或选择其他方式。
3. **安装引导程序依赖**:安装rosdep和vcstools等源码安装工具,初始化rosdep时,可能需要手动解决hddtemp包的问题。
4. **修改base.yaml和-default.list**:下载base.yaml并编辑,添加适用于Ubuntu 的内容。同时,更新-default.list以引用本地的base.yaml。
5. **连接问题**:更新rosdep时可能遇到Github连接问题,可尝试修改hosts文件或其他连接方法。
6. **catkin工作区与安装**:创建catkin工作区,使用vcstools下载Desktop版本的Ros包。推荐安装Desktop full版本以确保功能全面。
7. **兼容性处理**:在构建Ros1 Noetic前,需要对src文件夹中的两个包进行手动修补以适应Ubuntu .。
8. **源码安装依赖**:使用rosdep自动检测并安装缺失的依赖。
9. **包文件生成和下载**:生成包文件并下载依赖,注意包的顺序和完整性,避免因依赖问题导致的编译失败。
. **替换rosconsole和urdf**:新生成的包可能需要替换rosconsole和urdf,参照依赖问题部分进行操作。
. **构建和安装Ros1 Noetic**:使用catkin_make_isolated构建并安装Ros1,将其源码安装到指定工作区的install_isolated文件夹,然后将source命令添加到bashrc中。
. **额外安装**:Ros1 Desktop full版本可能不包含所有需要的包,如octomap和mavros,需要单独安装。
总的来说,虽然在Ubuntu .上安装Ros1 Noetic的过程较为复杂,但通过源码编译并遵循上述步骤,可以实现系统的兼容和功能的正常使用。
Turtlebot3 入门教程-PC软件设置
本文提供Turtlebot3入门教程,重点讲解PC软件设置。
首先,安装Ubuntu系统并执行脚本安装ROS-kinetic,如安装过程中遇到问题,可选择源码安装。
源码安装步骤包括:安装源、增加key、更新、Desktop-Full安装推荐包,包括ROS、rqt、rviz、robot-generic库等,并解决依赖问题。
在安装过程中,可能需要解决国外服务器下载问题,可借助科学上网方法解决。
环境设置后,进行rosinstall工具的安装,方便下载ROS软件包。接着开始安装TurtleBot3及依赖包。
进行网络配置,首先通过`ifconfig`命令获取主机ip地址,如:..1.,并在终端中编辑`.bashrc`文件,添加ROS_MASTER_URI参数,记得包含接口:“:”,然后刷新环境变量。
小车连接显示器,打开树莓派Ubuntu系统,获取从机ip地址,并确保小车系统连接同一WiFi,与主机IP前三部分一致。
在小车系统中,同样在`.bashrc`文件中进行相关参数的添加和修改,并刷新环境变量,确保配置完整无误。
进行主从机测试配置,首先在主机启动roscore服务,接着在从机执行`rostopic list`命令,查看节点名称返回数据是否与预期相同,若相同则配置成功。
如果配置过程中遇到无法连接主从机的问题,需检查虚拟机网络配置或网络连接是否正确。
本文还提供如何在主机上仅进行网络配置的简化步骤,通过使用ssh命令连接从机,便于操作和管理。
完成上述步骤后,即可成功设置Turtlebot3的PC软件环境,为后续的使用与开发打下坚实基础。
å¦ä½ç¼årosçpythonç¨åº
1 å 建ç«å·¥ä½ç©ºé´~/catkin_ws
catkin_create_pkg basic std_msgs rospy
2 å¨å·¥ä½ç©ºé´~/catkin_wsä¸å建å pkgç®å½basic
好å¤æ¯éè¿å建å èªå¨çæpackage.xmlåCMakeLists.txt
3 å¨å·¥ç¨ç®å½ä¸å»ºä¸ä¸ªsrcåç®å½å.pyæ件
æºä»£ç æ件ï¼topic_publisher.py
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#!/usr/bin/env python
import roslib; roslib.load_manifest('basic')
import rospy
from std_msgs.msg import Int
rospy.init_node('topic_publisher')
pub = rospy.Publisher('counter', Int)
rate = rospy.Rate(2)
count = 0
while not rospy.is_shutdown():
pub.publish(count)
count += 1
rate.sleep()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
æä½æ¥éª¤å¦ä¸
liao@liao-eagle:~/catkin_ws$ ls
build devel install src
liao@liao-eagle:~/catkin_ws$ cd src
liao@liao-eagle:~/catkin_ws/src$ ls
basic beginner_tutorials CMakeLists.txt first second
liao@liao-eagle:~/catkin_ws/src$ cd basic/
liao@liao-eagle:~/catkin_ws/src/basic$ ls
CMakeLists.txt package.xml src
liao@liao-eagle:~/catkin_ws/src/basic$ cd src
liao@liao-eagle:~/catkin_ws/src/basic/src$ vi topic_publisher.py
liao@liao-eagle:~/catkin_ws/src/basic/src$ chmod +x topic_publisher.py
4 åå°~/catkin_wsç®å½ä¸ï¼ç¼è¯ç¨åº
$ cd ï½/catkin_ws
liao@liao-eagle:~/catkin_ws$ catkin_make
5 å°å½åå·¥ç¨å å ¥å°shellç¯å¢éå»
liao@liao-eagle:~/catkin_ws$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
liao@liao-eagle:~/catkin_ws$ source ~/.bashrc
6 è¿è¡ç¨åºï¼éå¼ä¸¤ä¸ªç»ç«¯ï¼
liao@liao-eagle:~/catkin_ws$ roscore
liao@liao-eagle:~/catkin_ws$ rosrun basic topic_publisher.py
7 éè¿rostopicæ¥çç¸å ³ä¿¡æ¯
liao@liao-eagle:~/catkin_ws$ rostopic list
/counter
/rosout
/rosout_agg
liao@liao-eagle:~/catkin_ws$ rostopic info /counter
Type: std_msgs/Int
Publishers:
* /topic_publisher (http://liao-eagle:/)
Subscribers: None
liao@liao-eagle:~/catkin_ws$ rostopic echo /counter
data:
---
data:
---
data:
---
data:
---
data:
---
data:
---
data:
---
data:
---
data:
---
data: