【Gazebo 学习】260408 260408 我们目前为止都是直接通过 cli 来发布话题,这样会显得很不方便。 因此我们可以新增一个节点,用来监听我们键盘的输入,然后转为 cmd_vel来进行发布,以此来实现我们的控制功能。 我们预期是直接加到满速,而非慢慢加速,按键方案是 WASD + 空格/X 停止 + Q 退出。 以及,由
【Gazebo 学习】260407 260407 目前我们完成了 watchdog,可以继续完成我们剩下的控制系统了。 首先我们要做的是,将我们的 watchdog 接入到我们的 launch 中。 我们可以创建 src/kibot_one_sim/launch/kibot_one.launch.py, 在其中写入如下的内容: # m
【Gazebo 学习】260406 260406 接下来就可以来写我们 ROS2 的控制部分了。 在开始写正式的控制节点,我们要解决一个问题——DiffDrive 自身的指令记住导致的在收到新的指令前会一直保持相同速度进行移动的问题。 在我们真实的机器人中,通常都会在没有收到新的指令后就快速停下,而非一直保持活动。 我们可以通过自己写
【Gazebo 学习】260404 260404 继我们上次让我们世界中的小车动起来后,我们接下来可以继续对我们的小车进行其他的一些测试。 比如,原地转圈: gz topic -t /model/kibot_one_base/cmd_vel \ -m gz.msgs.Twist \ -p "linear: {x: 0.0},
【Gazebo 学习】260403 260403 目前我们完成了小车和世界的 sdf 文件,不过如果每次我们都要通过 CLI 命令来拉起这两个文件就显得有点过于麻烦了,因此我们可以选择编写一个启动文件来通过下面的命令一件拉起: ros2 launch kibot_one_sim gazebo.launch.py 我们可以看看我们编写
【Gazebo 学习】260401 260401 继我们上次搓好了小车车,我们接下来可以来搓一个较为简单的世界,我们可以在 src/kibot_one_sim/worlds/kibot_one.world.sdf 中写入如下内容: <?xml version="1.0"?> <sdf version="1.9"> <world n
【Gazebo 学习】260330 260330 接下来就来创建一个小车的雏形吧,虽然最终预期是履带作为移动,但是我们目前而言建模一个履带可能还是有点困难,因此就以一个底盘+四个轮子就可以了。 我们写一个这样的 .sdf文件吧。 我们可以先让 AI 写一下,最终得到的结果是这样的: 嗯...不过这个将近 300 行的 sdf 文件我看
【Gazebo 学习】260329 260329 按照 Gazebo 的官方教程,我们最好是先从 UI 的认识开始。 先通过: gz sim shapes.sdf 来打开一个 Gazebo 的基础场景吧。 然后,我们就可以开始利用 Gazebo 的官方教程来了解一下这个 UI 了...吗? 似乎是不太行,我想了想,这和游戏差不多,就
【Gazebo 学习】260328 260328 按照我们当前的进度,我们已经基本完成了对 ROS2 的初学者和中级部分的教程了。 基本上已经可以开始做项目了,按照我们的计划,我们解析来就可以来做一个简单的小项目了——KiBot One。 KiBot One 的本质不是“做一个很真的机器人”,而是: 用 ROS2 + Gazebo 做
【ROS2 学习】260326 260326 昨天据此提的 PR 被接受了: 简历上又可以吹牛逼了:咱 PR 被 ROS2 官方项目 backport 合并进去了。 咳咳...我们继续我们的动作学习。 我们上面有一个execute_callback的方法,这是一旦目标被接受后,会被调用来进行执行的方法。 接下我们试着运行,并列出来