导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    1. 主页
    2. xiaoqiang
    3. 帖子
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision
    • 资料
    • 关注 0
    • 粉丝 2
    • 主题 88
    • 帖子 312
    • 最佳 5
    • 群组 1

    xiaoqiang 发布的帖子

    • 小强ROS机器人教程(12)___ROS显示kinect2代的点云

      小强主页

      本教程适用于2016年12月之后购买的小强用户,在此之前购买的用户请自行根据这篇教程安装kinect2代驱动。

      1启动kienct2代的ROS驱动

      小强底盘输出一个12v电源(DC头,贴有“kinect供电”标签)用于kinect 供电,kinect2代需要插入小车主机蓝色usb3.0接口。
      将小强主机接入显示器和键盘,在小强主机上打开一个命令行终端输入

      roslaunch kinect2_bridge kinect2-xyz.launch
      

      2新开1个命令行终端,启动rviz

      rviz
      

      打开这个rviz配置文件 /home/xiaoqiang/Documents/ros/src/iai_kinect2/kinect2_bridge/launch/rviz.rviz ,点击可下载本文件
      一切正常的话,可以出现类似下图的界面

      0_1481008893212_kinect2.png

      小强主页
      返回目录

      发布在 产品服务
      xiaoqiang
      xiaoqiang
    • RE: 小强ROS机器人教程(8)___kinect1代 ROS驱动测试与安装

      @大水怪
      将 -DBUILD_REDIST_PACKAGE=OFF改成-DBUILD_REDIST_PACKAGE=ON后,可以编译完成,此时音频固件不会自动加载。请下载这份音频固件,放在这个目录下/usr/local/share/libfreenect/,现在启动freenect-micview可以成功开启麦克风。

      发布在 产品服务
      xiaoqiang
      xiaoqiang
    • 小强ROS机器人教程(18)___使用DSO_SLAM进行三维建模

      小强主页

      Direct Sparse Odometry(DSO)是业内很流行的lsd_slam系统作者的学生Jakob Engel开发的,实测性能和精度优于lsd_slam。DSO被作者开源到github,同时还一并开源了DSO在ros系统下的使用代码实例dso_ros.
      本篇教程将演示如何在小强开发平台上安装DSO和dso_ros, 利用小强平台上的摄像头实时运行DSO进行三维建模。点击观看视频。

      1.DSO的安装

      注:因为小强开发平台已经提前安装好了不少DSO需要的依赖包,下文将跳过这些包的安装,请其它开发平台的读者参考github上的完整安装教程进行安装。

      1.a安装依赖包

      sudo apt-get install libsuitesparse-dev libeigen3-dev libboost-dev
      sudo apt-get install libopencv-dev
      
      1.b下载源代码
      cd ~/Documents/
      git clone https://git.bwbot.org/publish/dso
      
      1.c继续配置依赖包
      sudo apt-get install zlib1g-dev
      cd ~/Documents/dso/thirdparty
      tar -zxvf libzip-1.1.1.tar.gz
      cd libzip-1.1.1/
      ./configure
      make
      sudo make install
      sudo cp lib/zipconf.h /usr/local/include/zipconf.h
      
      1.d编译安装
      cd ~/Documents/dso/
      mkdir build 
      cd build 
      cmake .. 
      make -j 2
      

      2.dso_ros的安装

      注:原作者提供的源代码有两个分支,master分支对应rosbuild版,catkin分支对应catkin版。对于现代ROS版本,推荐使用catkin版本,安装使用更方便。但是作者的catkin分支存在代码缺陷,实际无法安装使用,因此下文将安装我们蓝鲸智能修改之后的dso_ros版本。

      cd ~/Documents/ros/src
      git clone https://gitee.com/BluewhaleRobot/dso_ros.git
      cd ..
      export DSO_PATH=/home/xiaoqiang/Documents/dso
      catkin_make #或者用这条命令 catkin_make -DCATKIN_WHITELIST_PACKAGES=""
      

      3.开始使用

      sudo service startup stop # 停止startup服务
      roslaunch startup startup.launch # 启动摄像头等程序
      roslaunch dso_ros dso_ros.launch # 启动dso程序
      

      现在移动摄像头,就能开始对周围环境进行三维建模,移动过程避免急转弯和剧烈运动。

      对于小强用户,可以先遥控小强运动同时用rosbag录制/camera_node/image_raw这个image topic数据,然后重放,这样可以实现大范围的建模。rosbag重放前,需要关闭usb摄像头节点(sudo service startup stop),否则会有图像发布冲突。

      小强主页
      返回目录

      发布在 产品服务
      xiaoqiang
      xiaoqiang
    • 小强ROS机器人教程(7)___使用ps3手柄控制小强移动

      小强主页

      原理:本教程涉及3个包
      ps3joy负责将ps3蓝牙接受信号转换成标准的linux设备(/dev/input/js0)
      joy_node节点负责将上述joy设备数据转换成ros中的joy数据类型
      turtlebot_teleop_joy负责将上述joy数据topic 转换成小车运动指令/cmd_vel

      操作步骤

      0.第一次使用手柄,需要将手柄与蓝牙接受器进行绑定,以后可以直接从步骤1开始

      如果手柄和小强同时购买,那么我们已经提前为您将手柄配对可以从步骤1开始使用。
      绑定方法参考原装和国产ps3手柄ros驱动程序中的“快速使用方法步骤1”

      1.启动ps3joy,将ps3手柄与蓝牙接受器配比

      #确保蓝牙接收器已经插入主机usb口
      sudo bash
      rosrun ps3joy ps3joyfake_node.py
      

      正常会出现下面的提示

      root@xiaoqiang-desktop:~# rosrun ps3joy ps3joyfake_node.py 
      No inactivity timeout was set. (Run with --help for details.)
      Waiting for connection. Disconnect your PS3 joystick from USB and press the pairing button.
      

      如果提示下列错误
      按下下图中的手柄配对键


      0_1479882160058_14.3.png


      配对成功的话,上面的窗口会输出类似下面的结果

      root@xiaoqiang-desktop:~# rosrun ps3joy ps3joyfake_node.py 
      No inactivity timeout was set. (Run with --help for details.)
      Waiting for connection. Disconnect your PS3 joystick from USB and press the pairing button.
      Connection activated
      
      2.启动joy_node和turtlebot_teleop_joy
      roslaunch turtlebot_teleop ps3fakexiaoqiang_teleop.launch
      

      正常启动后如下图所示
      0_1479882359779_14.4.png
      ps3fakexiaoqiang_teleop.launch文件内容如下

      <launch>
      
        <node pkg="turtlebot_teleop" type="turtlebot_teleop_joy" name="turtlebot_teleop_joystick">
          <param name="scale_angular" value="0.4"/>
          <param name="scale_linear" value="0.4"/>
          <param name="axis_deadman" value="10"/>
          <param name="axis_linear" value="1"/>
          <param name="axis_angular" value="0"/>
          <param name="axis_enbar" value="12"/>
          <param name="axis_disenbar" value="14"/>
          <remap from="turtlebot_teleop_joystick/cmd_vel" to="/cmd_vel"/>
          <remap from="turtlebot_teleop_joystick/joy" to="/joy"/>
        </node>
      </launch>
      

      上述launch文件中的参数分别对应直线速度最大值(scale_linear)和角速度最大值(scale_angular),油门离合键(axis_deadman)、前进后退轴(axis_linear)、左右转轴(axis_angular),底盘红外使能键(axis_enbar),底盘红外关闭键(axis_disenbar),这些控制按键、摇杆的映射关系。

      3.保持按住手柄油门键(下图中的10号键),现在使用左侧的推杆可以控制小车的前后移动和转向(下图中的1+1-摇杆)

      0_1479882825642_ps3_buttons_front.jpg
      0_1479882814189_ps3_axes.jpg
      0_1479882833842_ps3_buttons.jpg

      根据这些按键编号,可以修改launch文件中的相关参数从而改变按键映射关系

      花样玩法

      购买ps3手机支架, 安卓手机装上小强图传app,这样可以实现图传遥控
      0_1489804886570_QQ图片20170318104104.jpg

      小强主页
      返回目录

      发布在 产品服务
      xiaoqiang
      xiaoqiang
    • MIT 博士团造自动驾驶快递小车Robby,能解决“最后一公里”嘛?

      0_1477195257240_1.jpg
                  李瑞

      李瑞是 MIT 的博士毕业生,他的产品是一辆名为 Robby 的自动驾驶快递机器人,做 Robby 的初衷,是源于美国的快递成本非常高。

      “以送餐为例,每送一次需要向客户收 5- 10 美金的快递费(食物本身可能也就十几美金而已)。如果换成快递小车,那么费用可以降低至 1-2 美金,而实际成本比这个还要低。”
      

      Robby 车身装置一个箱子,里面可以摆放各种快递物品。当它到达指定地点,用户可以在手机上按一个按钮,Robby 后背的箱子就能开启,用户取出物品之后,Robby 自己就又开始前往下一家了。
      点击观看动图
      在李瑞给我们演示的视频里,开发人员故意在路中间放了一把椅子,Robby 小车会绕开椅子,规划新的路径。开发人员还会故意踢 Robby 一脚(类似波士顿动力 Big dog 的测试),但Robby 还是“不屈不挠”重新返回路径上。
      点击观看动图
      Robby 最慢行驶速度相当于人的行走速度,最快可以达到人行走速度的 4-5 倍,这相当于是普通自行车的速度。它本质上使用的是自动驾驶技术,最核心的是定位、导航和避障。
      0_1477195548287_2.jpg
      Robby 机器人在今年 3 月始于波士顿,4 月份入选 YC 的暑期项目,5 月底团队搬到硅谷,6-8 月在 YC 孵化。

      虽然还只是手工制作的粗糙原型机,但 Robby 机器人已经在斯坦福大学校园里送货超过 50 次,他们还与 Instacart 合作,展开商业化测试。这么快就投入使用,是因为 Robby 团队十分看重产品在真实场景中的测试。
      本文来源:http://www.leiphone.com/news/201610/q0CieGmVy9UxPmR3.html

      发布在 行业动态
      xiaoqiang
      xiaoqiang
    • Tesla发布autopilot2.0,全面升级硬件,具备全自动驾驶能力

      0_1477193475528_1.png
      特斯拉本周四宣布旗下所有车型(包括Model 3)都已具备完全自动驾驶(Full self-driving )所需的硬件,但尚未激活。具体的更新如下:
      车身四周一共加装了 8 个摄像头,提供 360 度环视功能,最远能够测量 250 米范围内的物体。除了摄像头,特斯拉还加装了 12 个超声波传感器,能够探测到比此前系统远两倍距离范围内的障碍物。特斯拉车前还有一个加强版的前向雷达,能够在雨雪、大雾、扬尘天气下工作以及探测到前方车辆。

      为了处理传感器收集的数据,特斯拉还为车辆配置了一个全新车载电脑,其计算能力是上一代产品的 40 倍,用于处理视觉、声波和雷达软件的运行。这套系统可以同时在各个方位进行探测,覆盖的波长频段相当丰富。

      特斯拉表示,配备这种全新硬件的 Model S 和 Model X 车型已经可以量产,消费者在今天就可以购买。但是在激活新硬件功能之前,特斯拉表示会对此进行数百万英里的路测,等这些功能测试完毕、表现稳定,届时官方会通过 OTA 推送给特斯拉车主。

      本文来源:http://www.leiphone.com/news/201610/T0hLC1zegatYNA0Z.html

      发布在 行业动态
      xiaoqiang
      xiaoqiang
    • 小强ROS机器人教程(22)_操作6自由度机械臂

      小强主页

      6自由度机械臂的资料在这个百度云盘链接里:http://pan.baidu.com/s/1nuBpDaD 请仔细阅读二次开发部分的串口通信协议、虽然下文使用的是usb hid通信方式,但命令格式是一样

      下文将操作6自由度机械臂完成主控板上存储的3组动作。

      控制原理: 小车主机使用usb连接机械臂主控板,用户发送名为robot_arm/cmdstring的topic,这个topic内容为控制命令,最后由robot_arm节点负责将这个topic内容经由usb hid协议发送给机械臂主控板。

      1.运行robot_arm节点

      rosrun robot_arm move.py
      #robot_arm包代码在这里 http://git.bwbot.org/publish/robot_arm
      

      启动正常,机械臂会执行动作0(默认状态),同时命令窗口会显示如下内容

      xiaoqiang@xiaoqiang-desktop:~/Documents/ros$ rosrun robot_arm move.py 
      Opening robot arm device
      Manufacturer: MyUSB_HID
      Product: LOBOT
      Serial No: 8D9823654852
      Run the zero group action
      
      
      

      2.构造robot_arm/cmdstring topic

      robot_arm/cmdstring 这个topic 类型是std_msgs.msg中的String 即字符串。根据上文提供的机械臂二次开发资料,我们可以知道6自由度的控制协议是由一个无符号byte数组表示,因此我们在这里稍加改造,直接将这个数组的hex值变成字符串打包成topic命令。变换方式是采用python的byte array表示方式,将数组中每个元素的hex编码串在一起,然后将其中的0x换成\x。

      例如: [0x55,0x55,0x05,0x06,0x00,0x01,0x00] 这个控制命令数组,转换成robot_arm/cmdstring 内容是,'\x55\x55\x05\x06\x00\x01\x00'
      小技巧:看不懂的话,还可以用python的map函数帮忙转换,找规律。list(map(ord,'\x55\x55\x05\x06\x00\x01\x00'))
          
      

      我们要控制机械臂完成3个动作,这三个字符串内容如下

      '\x55\x55\x05\x06\x00\x01\x00'
      
      '\x55\x55\x05\x06\x01\x01\x00'
      
      '\x55\x55\x05\x06\x02\x01\x00'
      
      找到规律没...
      

      3.发布运动命令

      新开一个命令行终端,因为是演示,所以直接使用rostopic 的pub功能,将上面的字符串命令打包成topic发给robot_arm节点
      动作1: rostopic pub robot_arm/cmdstring std_msgs/String '\x55\x55\x05\x06\x00\x01\x00' 
      动作2: rostopic pub robot_arm/cmdstring std_msgs/String '\x55\x55\x05\x06\x01\x01\x00' 
      动作3: rostopic pub robot_arm/cmdstring std_msgs/String '\x55\x55\x05\x06\x02\x01\x00' 
      

      4.运动结果暂时没有视频,需要自己实际操作,觉得运动不满意的话请参考我们这个舵机运动控制帖子:电机控制与缓动函数

      小强主页
      返回目录

      发布在 产品服务
      xiaoqiang
      xiaoqiang
    • RE: ubuntu14.04升级cmake版本后,ROS catkin_make错误解决办法

      @weijiz 这歪楼能力,知道的也太多了

      发布在 技术交流
      xiaoqiang
      xiaoqiang
    • RE: ubuntu14.04升级cmake版本后,ROS catkin_make错误解决办法

      还有一个偷懒方法是,将build目录下的makefile中的CMAKE_COMMAND 中的cmake路径修改下

      发布在 技术交流
      xiaoqiang
      xiaoqiang
    • 如何简单规避冗余参数对曲面方程拟合的影响

      曲面方程(可以是高维)的参数通常都满足这样一个条件

      参数同时放大一个倍数,曲面方程不变,以平面方程为例:
      A*x+B*y+C*z+D=0
      让A、B 、C 、D同时放大两倍,原方程表示的平面显然不变
      

      用多个点来拟合一个曲面时,因为上述性质,会导致参数空间存在一个稳定的平凡解,用迭代法求解时,算法容易陷入这个无意义的平凡解,因而拟合失败。

      平凡解:所有参数为零
      

      规避这个平凡解的办法是,将平凡解从参数空间中消除,通常的实现方式是修改算法,增加参数限制条件。
      本文要介绍的一个小技巧是:

      直接固定一个参数,因为参数的绝对值没有意义,相对大小才是有意义的,所以可以直接将一个参数固定为1
      

      这个技巧需要注意的地方是:参数有多个,我们需要固定的参数的真实值不能为零(零值没有比值,所以不能用)。在实际运用时,我们虽然不知道参数的真实值(知道了就不求了),但可以确定某个参数肯定不能为零,因此固定参数的选择还是很容易实现的,本方法的可行性也就得到了保障。

      发布在 技术交流
      xiaoqiang
      xiaoqiang
    • ROS运行python脚本报错: No module named srv

      调试一个python脚本时,突然报错

      ImportError: No module named srv under tf2_msgs
      

      机器已经安装了ros jade完整版,在/opt/ros/jade/lib/python2.7/dist-packages/tf2_msgs目录下也有srv目录,应该没问题的。
      google一番,发现有人反应是python包名字问题(http://www.aichengxu.com/view/75748),但tf2_msgs是官方包,自然不存在这个问题。
      回想一下今天对系统的改动,白天升级了一下jade版本的tf2包,但因为bullet依赖问题,升级到一半就放弃了(这个依赖问题可以参考http://answers.ros.org/question/220676/how-to-install-bullet-on-indigo-in-ubuntu/)。
      重新catkin_make 了下ros工作目录,然后仔细翻看了一下ros工作目录的devel目录,发现/home/xiaoqiang/Documents/ros/devel/lib/python2.7/dist-packages目录下竟然还有tf2_msgs文件夹,但里面没有srv目录。
      所以找到问题根源了

      一个ROS python包即使从工作目录删除了,catkin_make命令也不会删除之前残留在devel目录下的文件夹
      rosrun 和 roslaunch 运行节点程序时,优先查找用户工作目录,导致尝试从一个残留文件夹加载运行文件,这就导致了开头的问题
      
      发布在 技术交流
      xiaoqiang
      xiaoqiang
    • 特斯拉发生首宗自动驾驶致死车祸,遭受调查

      北京时间7月1日早间消息,美国高速公路交通安全委员会(NHTSA)周四表示,将对2.5万辆特斯拉Model S车型展开初步调查。调查原因是由于5月7日,在佛罗里达州Williston,一名Model S车主在使用Autopilot自动驾驶模式时发生事故死亡。

      NHTSA表示,事故车辆是2015年款Model S,事故发生时车辆开启了Autopilot自动驾驶模式。该部门将调查“事故发生时驾驶辅助功能的设计和性能”。如果NHTSA认为车辆安全性存在问题,那么将会要求车辆召回。
        初步报告显示,当时在一个十字路口,在这辆特斯拉汽车的前方,一辆重型卡车正在左转。
      0_1467423034883_1.png
      事发时,车辆正处于自动驾驶模式,Model S的摄像头和雷达疑似未能识别出左转弯的蓝色大货车,导致车辆并未启动刹车,全速撞上货车,图中标注红色的特斯拉就从货车底下钻了过去,驾驶员当场死亡。
        对于事故原因,特斯拉表示:“在天空明亮光线的照射之下,Autopilot系统和司机都没有注意到重型卡车白色的侧方,因此没有踩刹车。

      发布在 行业动态
      xiaoqiang
      xiaoqiang
    • 1
    • 2
    • 12
    • 13
    • 14
    • 15
    • 16
    • 16 / 16