Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9137942
  • 博文数量: 1725
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 19840
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1725)

文章存档

2024年(1)

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: 其他平台

2019-02-11 10:00:58

猪年春节就这么过了, 家里的三个女人都瘦了很多, 不过低开高走, 猪事大吉.

这周要实现的内容:
1. 底盘ROS标准化, 目前先实现底盘部分VCP控制, ROSSerial通讯, 电机控制器的精细化操作.
2. Joule平台ROS标准化, 参考Kinetic标准框架搭建.
3. 实现蓝牙键盘控制底盘部分的行走.

点击(此处)折叠或打开

  1. //新建工作目录.
  2. mkdir -p /work/BigRobot/src
  3. cd /work/BigRobot/src
  4. catkin_init_workspace
  5. cd /work/BigRobot
  6. catkin_make
规范化自己工作空间的快捷键

点击(此处)折叠或打开

  1. #编辑 ~/.bashrc
  2. source /opt/ros/kinetic/setup.bash
  3. source /work/BigRobot/devel/setup.bash

  4. alias gw='cd /work/BigRobot'
  5. alias gs='cd /work/BigRobot/src'
  6. alias gm='cd /work/BigRobot && catkin_make'

  7. export GIT_SSL_NO_VERIFY=1
这样通过 gw/gs/gm等即可快速的进行ROS工作空间切换和编译

=========================================================
首先创建 big机器人 中各个功能节点 相互通讯 所需要的 交互接口 功能包

点击(此处)折叠或打开

  1. gs
  2. catkin_create_pkg big_msgs message_generation std_msgs roscpp
则创建了 功能包 big_msgs, 此目录用于规划各个功能节点之间的通讯接口以便于统一管理.
查看turtlebot3的规则, 一般对应的功能包目录包括的内容

点击(此处)折叠或打开

  1. src/include : 源码目录, CPP或者Python脚本, catkin_create_pkg时自动生成, 需手动添加内容.
  2. srv: 服务文件 *.srv
  3. msg: 消息文件 *.msg
  4. param: 参数文件 *.yaml
  5. action: 动作文件 *.action
  6. launch: *.launch文件
  7. CMakeLists.txt : catkin_create_pkg时自动生成, 需手动改写.
  8. package.xml: catkin_create_pkg时自动生成, 需手动改写.
=========================================================

元功能包是具有共同目的的功能包的集合体, 目前考虑把 接口测试/单元测试, 应用测试, 发布环境等明确目录管理, 权做为元功能包的概念.

点击(此处)折叠或打开

  1. 当前的使用键盘进行控制行走为一个测试单元, 此时建立一个测试目录统一管理后期的测试程序

  2. gs
  3. mkdir test_units
  4. cd test_units
  5. catkin_create_pkg remote_control_by_keyboard message_generation std_msgs roscpp

编辑完代码 机器人底盘 通过 VCP USB 接入到 Joule, 被Joule识别为 ttyACM0.
在 ROS端执行.
roscore
sudo chmod a+rwx /dev/ttyACM0; rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 #_baud:=115200 (CDC设置波特率没有什么意义)
rosparam load ./src/big_msgs/param/GlobalStaticConfig.yaml # 加载机器人配置信息.
rosrun remote_control_by_keyboard remote_control_by_keyboard_node  #发现能传递一些东西了, 剩下就是调数据了.


点击(此处)折叠或打开

  1. ########################################
  2. # GlobalStaticConfig.yaml  底盘全局参数
  3. ########################################
  4. # 底盘半径宽度 meter
  5. ROBOT_RADIUS: 0.220
  6. # 底盘轮子 半径 meter
  7. WHEEL_RADIUS: 0.033
  8. # 底盘两个差动轮的轴距
  9. WHEEL_BASE: 0.287
  10. #转弯半径, 轴距的一半?
  11. TURNING_RADIUS: 0.1435
  12. # 编码器最大最小值. 就是 int32的最值
  13. ENCODER_MAX: 2147483647
  14. #最大线速度 77是rpm, 单位 m/s
  15. #double MAX_LINEAR_VELOCITY = (WHEEL_RADIUS * 2 * 3.14159265359 * 77 / 60)
  16. #double MIN_LINEAR_VELOCITY = -MAX_LINEAR_VELOCITY
  17. #最大角速度 单位 rad/s
  18. #double MAX_ANGULAR_VELOCITY = (MAX_LINEAR_VELOCITY / TURNING_RADIUS)
  19. #double MIN_ANGULAR_VELOCITY = -MAX_ANGULAR_VELOCITY





阅读(1743) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~