分类: 3D & SLAM

[ROS] [笔记(1)] 一个最简单的例子:Hello Robot(消息、发布者与订阅者)

本例程包含如下内容: 1)创建编译 Package; 2)自定义消息; 3)发布者与订阅者。 0、Hello Robot 的场景: 我们想要完成这样一个场景: 1)有一系列 robot 排成一排(publisher)向管理员(subscriber)报道,每个人都发一个消息(robotID),包含 name 和 id 类似: name=robot id=0 name=robot id=1 name=robot id=2 2)有一个管理员订阅了这个消息(robotID),然后读取消息内容并且和每个机器人打招呼: hello robot 0 hello robot 1 hello robot 2 要完成以上的功能,我们需要创建消息(robotID)、发送消息的发送者(publisher)、接收消息的订阅者(subscriber)。他们之间的关系是这样的: 1、创建 ros 目录: 先我们为所有的 ROS 工程创建如下路径: Shell mkdir ~/ROS 1 mkdir ~/ROS ...

[ROS] [笔记(0)] 在 Ubuntu 14.04 系统上安装 ROS indigo

ROS 的发行版很多,最新的版本是 jade。但是通常情况下我们更多地使用其稳定版本 indigo。这篇文章就讲下 indigo 版本在 Ubuntu 下的安装。 0、安装环境: Ubuntu 14.04.3 LTS 1、配置源: 使用 ROS 官方源: Shell sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 1 sudo sh -c 'echo...

[ROS] 安装 USB Camera 驱动并调用

在 ROS 系统中,想要使用 USB 摄像头需要安装相应的驱动程序。这里以常用的 usb_cam 为例来说明如何安装给 ROS 安装 USB 摄像头。 0、安装环境: Ubuntu版本:14.04 LTS ROS版本:indigo (1.11.13) 1、进入ROS工作区(假设为~/catkin-ws),新建 usb_cam 目录,并在其下新建 src 目录: Shell $ cd ~/catkin-ws/ $ mkdir -p usb_cam/src 12 $ cd ~/catkin-ws/$ mkdir...

[Linux] 用 EasyBCD 在 Win7/8 中硬盘安装 Ubuntu

64位 UEFI 硬盘安装参考:http://teliute.org/linux/Ubsetup/jichu4/jichu4.html 参考: 1)http://talk.synyan.net/9625.html 2)http://teliute.org/linux/Ubsetup/jichu4/jichu4.html   EasyBCD 可以方便地编辑 Win7 和Win8 的启动菜单项,操作中注意细心,下面来看一个练习; 下载 Ubuntu 的 desktop 光盘镜像iso文件,如 ubuntu-14.04.3-desktop-amd64.iso (注意更新后面文字中的 ubuntu 版本): http://pan.baidu.com/s/1pJlCvWn 其他下载地址可以参阅前面的课程;   1、下载安装 EasyBCD 1)EasyBCD个人版是免费的,可以在华军下载: http://www.onlinedown.net/soft/58174.htm,下载完后双击运行安装, 在出来的安装对话框中,一路点“Next-I Agree-Next-Install-Finish” 2)稍等会运行 EasyBCD,以后自己在桌面上双击运行,在第一步要选择“简体中文”,然后点“Go”继续; 接下来的版权提示点“确定”继续; 3)在出来程序窗口左侧栏,点击“添加新条目”; 4)然后在右侧出来一个面板,点最右边的“NeoGrub”标签,再点它下边的“安装”按钮; 5)稍等安装完成,再点击它旁边的“配置”按钮; 6)出来一个记事本窗口,删除里面的内容,复制下面的内容进去; title Install Ubuntu root (hd0,0) kernel /vmlinuz...

PTAM 中的内存泄露问题和修正

在编译和调试 PTAM 过程中发现一些可能引起内存泄露的问题,现将修改方法列出供参考。由于 PTAM 可能更多的只是一个实验代码,我也并没有仔细阅读过,因此问题可能远不止这些,如有发现问题或者修改不当之处,欢迎大家在后面留言讨论。 1、Keyframe 中的内存泄露修正: 1) 修改 Keyframe.h 文件,增加析构函数: C++ ~KeyFrame(); 1     ~KeyFrame(); 2) 修改 Keyframe.cc 文件,增加析构函数: C++ KeyFrame::~KeyFrame() { if(pSBI != NULL) ...

iOS 版本 OSG v3.2.1 SDK 下载(OpenGLES2.0&1.1)

之前的文章介绍了如何在 iOS 上编译 OSG v3.2.1 版本引擎。然而对于很多用户来说,编译 iOS 版本 SDK 并不似一件容易的事,如果只是想要使用 OSG 的引擎,那么只需要下载我已经编译好的 SDK 即可。为了方便大家使用,我提供了 OpenGLES 2.0 和 OpenGLES 1.1 两个不同版本的 SDK 供大家下载。 1、编译环境: 1) OSX 10.10 2) Xcode...

osgConv:生成压缩格式并加载

上一篇博客介绍了如何使用 WriteImageHint 将模型绑定的素材转换到外部独立文件。其实这个 osgConv 还可以将转换的文件进行压缩,进一步减少大小。 1、转换部分: 使用参数: Compressor=zlib 1 Compressor=zlib 具体命令类似: ./osgconv young.fbx young.osgb -O Compressor=zlib 1 ./osgconv young.fbx young.osgb -O Compressor=zlib 2、展示部分: 在 iOS 加载的工程中需要注册 zlib 压缩类。编辑 osgPlugins.h ,添加下面一行: // Pull in the zlib compressor USE_COMPRESSOR_WRAPPER(ZLibCompressor) 12 // Pull...

osgConv:转换素材到外部并加载

使用 osgConv 的时候,很希望把素材转换到外部独立文件,并且分别加载。其实 osgConv 有这样的参数可以达到这样的效果: 使用参数: WriteImageHint=WriteOut 1 WriteImageHint=WriteOut 具体命令类似: ./osgconv young.fbx young.osgb -O WriteImageHint=WriteOut 1 ./osgconv young.fbx young.osgb -O WriteImageHint=WriteOut 生成的 young.osgb 动画就会把素材单独放到外边,类似于 young.fbm 这样一个单独的文件夹下面。 加载的时候,只要 young.osgb 文件与素材文件夹 young.fbm 放在同一个路径下,就可以正常加载素材没有问题。 参考文献: [1] http://trac.openscenegraph.org/projects/osg//wiki/Support/KnowledgeBase/SerializationSupport 示例中的 fbx 文件如下: http://yun.baidu.com/s/1pJI61YF...

iOS:设置 OSG 绘制背景为透明

在 OSG 3.2.1 中需要设置 OSG 绘制背景为透明的时候,需要做出如下设置: 1、设置 windata: // Init the Windata Variable that holds the handle for the Window to display OSG in. ...

Mac 版本 OSG 引擎编译

0、编译环境 1) Xcode 6.1 2) OSX 10.10 1、准备工作 1) 安装 CMake 3.0.2 下载地址: http://pan.baidu.com/s/1i3xekJF 2) FBX 格式扩展(根据需要酌情安装) 下载地址: http://pan.baidu.com/s/1kT9RzdP 安装。 2、配置 CMake 1) 设置是否编译例子: BUILD_OSG_EXAMPLES = ON 1 BUILD_OSG_EXAMPLES = ON 2) 设置 OSG_WINDOWING_SYSTEM : OSG_WINDOWING_SYSTEM = Cocoa 1 OSG_WINDOWING_SYSTEM = Cocoa 3) 添加 fbx...