implement "slam_karto" package in Stage simulation

slam_karto

ROS Wiki: http://wiki.ros.org/slam_karto

Source: https://github.com/ros-perception/slam_karto

Reliance: open_karto - https://github.com/ros-perception/open_karto

fetch_gazebo - https://github.com/fetchrobotics/fetch_gazebo

pr2_navigation - https://github.com/pr2/pr2_navigation

navigation_2d - https://github.com/skasperski/navigation_2d

Implementing karto_stage.launch:

1. Error: ResourceNotFound: karto

Use crtl+shift+F to find all "karto" packages, and replace it as slam_karto.

Eg:

For all $(find karto), we should modify them to $(find slam_karto).

2. ERROR: cannot launch node of type [stage/stageros]: can‘t locate node [stageros] in package [stage]

Use crtl+shift+F to find all "stage" packages, and replace it as stage_ros which is pre-installed in ROS.

3. err: Model type laser not found in model typetable (/tmp/binarydeb/ros-indigo-stage-4.1.1/libstage/world.cc CreateModel)

    err: Unknown model type laser in world file. (/tmp/binarydeb/ros-indigo-stage-4.1.1/libstage/world.cc CreateModel)

ANSWER: http://answers.ros.org/question/33973/stage-error-in-fuerte/

An easy solution: $ perl -p -i -e ‘s/laser/ranger/g‘ $(find . -name *.world) $(find . -name *.inc)

Tip:

Use comment <!-- & --> to disable some lines to position the error source.

in willow-pr2-5cm.world

looks like you also have to wrap your laser in a "sensor" block...

define topurg ranger(  sensor(    range_max 30.0    fov 270.25    samples 1081  )  # generic model properties  color "black"  size [ 0.05 0.05 0.1 ])

Has now become:

define topurg ranger(  sensor(    range_max 30.0    fov 270.25    samples 1081  )  # generic model properties  color "black"  size [ 0.05 0.05 0.1 ])

4. rviz Robot Model Status Error ---- no robot model imported

Because there is no robot model imported. For now, just ignore it.

5. run slam in stage and rviz

$ roslaunch slam_karto karto_stage.launch

use Nav_goal in rviz to navigate the robot

时间: 2024-12-29 01:50:32

implement "slam_karto" package in Stage simulation的相关文章

implement &quot;slam_karto&quot; package on a Freight robot

1. login ssh [email protected]<robot ip or robot name> 2.  set robot master modify .bashrc in robot's computer using ssh export ROS_MASTER_URI=http://<robot ip or robot name>:11311 export ROS_IP=<robot ip> modify .bashrc in local compute

【DataStructure】Another usage of List: Polynomial

Statements: This blog was written by me, but most of content  is quoted from book[Data Structure with Java Hubbard] [Description] Apolynomialis a mathematical function of the form: p(x) = a0xn+ a1xn–1+a2xn–2+ ???+an–1x + an The greatest exponent, 

Java Multi-Thread

1. 2种实现方法: thread类和runnable接口 extends Thead package demo1; class Runner extends Thread { @Override public void run() { for (int i=0;i<10;i++){ System.out.println("hello"+i); try { Thread.sleep(100); } catch (InterruptedException e) { // TODO

Advanced Pricing - How to source Pricing Attributes using QP_CUSTOM_SOURCE.Get_Custom_Attribute_Valu

详细内容需要参考文档:Oracle 11i Advanced Pricing-Don't Customize, Extend! utl:http://blog.csdn.net/cai_xingyun/article/details/41384541 Oracle Advanced Pricing - Version 11.5.8 and later Information in this document applies to any platform. ***Checked for rele

生产者-消费者问题【Java实现】

综合示例,演示有限长度字符序列缓冲区的并发读写, 或者称 生产者 - 消费者问题.错漏之处, 恳请指出 ^_^ /** * PCProblem : * 模拟生产者-消费者问题, 生产者产生字符并写入字符序列缓冲区, 消费者从缓冲区取走字符 * * @author shuqin1984 2011-08-05 * */ package threadprogramming.basic.simulation; import java.util.concurrent.ExecutorService; im

SON-RPC for Java

JSON-RPC for Java https://github.com/briandilley/jsonrpc4j#json-rpc-for-java This project aims to provide the facility to easily implement JSON-RPC for the java programming language. jsonrpc4j uses the Jackson library to convert java objects to and f

基于Jenkins Pipeline自动化部署

最近在公司推行Docker Swarm集群的过程中,需要用到Jenkins来做自动化部署,Jenkins实现自动化部署有很多种方案,可以直接在jenkins页面写Job,把一些操作和脚本都通过页面设置,也可以在每个项目中直接写Pipeline脚本,但像我那么优秀,那么追求极致的程序员来说,这些方案都打动不了我那颗骚动的心,下面我会跟你们讲讲我是如何通过Pipeline脚本实现自动化部署方案的,并且实现多分支构建,还实现了所有项目共享一个Pipeline脚本. 使用Jenkins前的一些设置 为了

8.2.1输入分片InputSplit和输入处理格式FileInputFormat

1.1.1         输入分片和记录 (1)输入分片InputSplit接口 输入分片一般是文件,也可以数据库中的若干行.记录对应一行数据.输入分片在java表示为InputSplit接口,getlength函数返回大小,用于分片排序,大的先处理.Getlocation函数返回分片位置,让map任务尽量本地化.分片并不包含数据本身,而是指向数据的索引. public abstract class InputSplit { /** * Get the size of the split, s

WholeFileInputFormat 和WholeFileRecordReader合并小文件

如果不希望文件被切分,例如判断文件中记录是否有序,可以让minimumSize值大于最大文件的大小,但是文件的大小不能超过blockSize,或者重写FileInputFormat方法isSplitable()返回为false.下面介绍将多个小文件合成一个大的序列文件的例子: 1)自定义完整文件输入处理类如下: Public class WholeFileInputFormat extends FileInputFormat<NullWritable, ByteWritable> { @ove