ROS
文章平均质量分 80
nice-wyh
广泛学习的研究生
展开
-
学习ROS-Academy-for-Beginners-noetic,修改记录
学习ROS-Academy-for-Beginners-noetic,并尝试修改自己的仿真场地,建图并导航原创 2023-05-01 10:21:31 · 577 阅读 · 1 评论 -
Ubuntu20.04配置并运行LSD_SLAM,实测可行
我使用的开源代码为,这个是基于Ubuntu18.04实现的,本人在改的时候废了不少功夫,大概徘徊了4天,最后连续工作9小时解决了环境配置问题(建议刚接触的同学安装Ubuntu18.04,环境配起来会轻松许多,当然,在配置自己的环境时也学到了很多,作此纪录)。新建一个工作空间catkin_ws,新建一个src文件夹,存放源码,代码下载好后,终端执行代码catkin_init_workspace,初始化工作空间,生成CMakeLists.txt文件,之后回到上一级目录,执行代码catkin_make编译代码。原创 2023-02-17 11:32:00 · 1186 阅读 · 2 评论 -
解决ROS编译过程中的简单的环境问题
看网上很多大神都是进入bashrc修改或者添加代码但是好多没啥用,亲测一种方法如下。ps:pwd 可获取目前所在工作目录的绝对路径名称。ros_workspace为我的ROS工作路径。然后重启bashrc,使环境刷新,加载进去。这种方法不需要每次编写都添加环境变量了。设置成功会显示你添加的路径。在该文件的最后添加如下代码。查看ROS路径是否添加上。原创 2023-02-12 21:33:31 · 641 阅读 · 0 评论 -
ROS学习指南(五)
常用的六轴IMU可以解算出机器人xyz三个方向的角速度和角加速度,消息包定义如下,其中第三个为九轴IMU才会使用的,一般我们使用第二种,即imu/data。前面实验里,我们实现了IMU数据的获取,接着我们尝试获取IMU数据的同时,还能发布速度控制指令,使机器人能对位姿变化作出反应,实现航向锁定的效果。(2).设定一个目标朝向角,当姿态信息中的朝向角和目标朝向角不一致时,控制机器人转向目标朝向角。(2).在vscode的src下新建代码文件imu_node.cpp,输入代码。修改之前代码,增加代码如下。原创 2023-02-06 13:06:51 · 1127 阅读 · 0 评论 -
ROS学习记录(四)
同时添加激光雷达,点击左下角Add按钮,选择LaserScan,并把话题名称(Topic)配置成/scan,可以看到小车前方出现红点即为激光雷达扫描到的点。(iii).在节点中,向ROS大管家NodeHandle申请订阅话题/scan,并设置回调函数LidarCallback()打开vscode,在lidar_pkg/src文件夹下新建源码文件lidar_node.cpp,输入代码。7.保存模型,点击RViz左上角File,Save Config As,输入保存文件名,即可保存。原创 2023-02-06 00:44:41 · 944 阅读 · 0 评论 -
ROS学习记录(三)
(3).在节点中,向ROS大管家NodeHandle申请发布话题/cmd_vel,并拿到发布对象vel_pub。2.思路整理,我们需要构建速度控制节点,把速度控制包发布到速度控制话题/cmd_vel中,即完成消息发布任务。(4).构建一个geometry_msgs/Twist类型的消息包vel_msg,用来承载要发送的速度值。2.打开vscode,在vel_pkg的src文件夹下新建vel_node.cpp代码文件。(5).开启一个while循环,不停地使用vel_pub对象发送速度消息包vel_msg。原创 2023-02-05 23:20:38 · 380 阅读 · 0 评论 -
ROS学习记录(二)
在目录下新建一个catkin_ws文件夹,并在里面再建立一个src文件夹,并在终端执行catkin_init_workspace,之后会生成cmakelist文件,再回到上一级目录执行catkin_make进行编译,会生成build,devel文件夹。在catkin_ws的src文件下,使用代码catkin_create_pkg atr_pkg roscpp rospy std_msgs创建新的软件包,进入vscode,在对应的src文件下新建ma_node.cpp文件,输入代码。原创 2023-02-05 22:33:00 · 249 阅读 · 0 评论 -
ROS学习记录(一)
ROS 是 Robot Operating System 的缩写,通常称为“机器人操作系统”。但它并不是一个真正的操作系统,而是一个面向机器人的开源的元操作系统(meta-operating system),提供类似传统操作系统的诸多功能:硬件抽象、底层设备控制、常用功能实现、进程间消息传递、程序包管理等。并且提供相关工具和库,用于获取、编译、编辑代码以及在多个计算机之间运行程序完成分布式计算。原创 2023-02-05 19:45:15 · 119 阅读 · 0 评论