- 博客(30)
- 资源 (14)
- 收藏
- 关注
原创 C++的学习(十一)继承
面向对象语言的核心就是继承与虚拟,首先总结一下C++中与继承有关的知识。如果你之前学过java或者其它的面向对象的语言,对继承的理解应该是很容易的。在C++中,一个类通过继承可以获得父类的所有成员,而它自己又相应的称为其父类的子类。我们也可以把父类称为基类,把子类称为派生类。 如果没有特别强调均为公有继承。 首先,我们已经知道一个类通过继承可以获得父类的所有成员。对于父
2013-10-31 20:07:24 2050
转载 解决ubuntu下arduino IDE的Serial Port无法选择问题
刚接触arduino,刚买了个arduino uno的板子(mango的兼容板 ,不得不说,质量还不错。),拿回来就开始折腾,开始在windows上折腾没有问题,近来在windows下工作越来越少,而今天开始在ubuntu上折腾,上来就碰到了一个问题。那就是arduino IDE的Serial Port无法选择,google后发现解决方案。原因就是在ubuntu下,预置安装了一个叫brltty
2013-10-31 16:30:27 15359 3
原创 ROS学习(十七)安装ARDUINO IDE使用rosserial
arduino和arduino IDE是非常好的和简单的可编程硬件工具,使用rosserial_arduino包,你可以使用arduino IDE直接使用ROS。rosserial提供了一个通信协议,它通过arduino的UART来工作。它允许arduino作为一个ROS的节点,可以直接发布和订阅ROS的消息,发布TF变换,以及获取ROS的系统时间。 如果你没有安装arduino ID
2013-10-31 15:23:17 20896 14
原创 ROS的学习(十六)用C++写一个简单的服务器(service)和客户端(client)
我们将创建一个服务器节点add_two_ints_server,它将会收到两个整数,并且返回它们的和。切换目录到之前建立的beginner_tutorials包下:cd ~/catkin_ws/src/beginner_tutorials 编辑src/add_two_ints_server.cpp文件:vim src/add_two_ints_server.cpp
2013-10-30 21:51:25 17053 13
原创 ROS的学习(十五)验证publisher和subscriber
在前面的两篇博客中我们用C++在ROS中创建了一个发布者和接收者,并使用catkin_make构建了新的节点,下面就需要验证一下,我们写的是否正确。 首先运行roscoreroscore 打开一个新的终端在里面运行talker:rosrun beginner_tutorials talker 看到的运行结果如下:[INFO] [WallTim
2013-10-30 21:01:11 7375 10
原创 ROS的学习(十四)用C++写一个简单的接收者
打开一个终端,进入到beginner_tutorials包下面:cd ~/catkin_ws/src/beginner_tutorials 编辑文件src/listener.cpp:vim src/listener.cpp 将下面的代码复制到文件中:#include "ros/ros.h"#include "std_msgs/String.h"/*
2013-10-30 20:49:26 21344 12
原创 ROS的学习(十二)用C++写一个简单的发布者
节点是一个可执行程序,它连接到了ROS的网络系统中。我们将会创建一个发布者,也就是说话者节点,它将会持续的广播一个信息。 改变目录到之前所建立的那个包下:cd ~/catkin_ws/src/beginner_tutorials 在beginner_tutorials包下面建立一个src文件夹:mkdir -p ~/catkin_ws/src/beginner_
2013-10-30 20:04:42 29797 6
原创 ROS的学习(十一)ROS的msg和srv
msg是一个描述ROS中消息的域的简单的文本文件,它用来为消息产生不同语言的源代码。 一个srv文件描述一个服务,它由两部分组成,请求和服务。 msg文件被存储在一个包的msg目录下,srv文件被存储在srv目录下。msg是简单的文本文件,它的每一行由一个与的类型和域的名字组成。你可以使用的域的类型有:int8, int16, int32, int64 (plus ui
2013-10-30 18:45:52 15979 4
原创 ROS的学习(十)rqt_console和roslaunch
打开一个新的终端在里面输入:sudo apt-get install ros-hydro-rqt ros-hydro-rqt-common-plugins ros-hydro-turtlesim安装使用rqt_console所需要的插件,如果你不知道之前是否安装,没关系,把这个命令运行一下就行了,它不会对你之前的系统有任何的伤害。在终端中运行rqt_console:rosrun r
2013-10-30 16:33:07 12640 11
原创 ROS的学习(九)理解ROS的参数
rosparam命令允许你在ROS的参数服务器上操作和存储数据,参数服务器可以存储整数,浮点数,布尔类型,字典,列表。ROS使用YAML标记语言作为语法,在简单的情况下,YAML看起来是非常自然的:1是整数,1.0是浮点数,one是字符串,true是布尔类型,[1,2,3]是一个列表,{a:b,c:d}是一个字典。我们使用rosparam list 命令可以查看参数服务器上的内容:rospar
2013-10-30 15:13:00 9876 4
转载 让ubuntu在一个窗口下打开多个终端的软件——terminator
Terminator是CrunchBang的默认终端,该终端基于GNOME terminal。Terminator最大的特点就是可以在一个屏幕下同时显示多个终端。Terminator可以在Ubuntu在同一窗口中启动多个终端。可以自由的在一个窗口中分割区域建立新终端,通过鼠标拉伸调整每个终端的大小,对同时需要操作多个终端的用户非常方便。 同时操作多个VPS的时候不用切换终端窗口,在一个窗口中就可以
2013-10-30 14:29:58 18142 1
原创 ROS的学习(八)ROS的服务
服务是节点之间通信的另一种方式,服务允许节点发起一个请求和接收一个响应。 打开终端在里面输入:roscore 另外打开一个终端在里面输入:rosrun turtlesim turtlesim_node 使用rosservice list可以查看一个节点提供的服务:rosservice list返回结果如下:/clear
2013-10-29 22:12:13 10698
原创 ROS的学习(七)ROS的话题
首先需要打开一个终端在里面运行roscore:roscore 再打开一个终端,在里面运行一个turtlesim_node节点:rosrun turtlesim turtlesim_node 打开另一个终端,在里面输入:rosrun turtlesim turtle_teleop_key在运行完这条命令后,在这个终端下,按键盘上的方向键可以看到
2013-10-29 21:31:35 22598
原创 ROS的学习(六)理解ROS的节点(NODE)
经过前面的学习,我们已经知道了如何构建一个ROS的包,这篇博客将介绍ROS中的节点的概念。 在继续之前,请按ctrl+alt+t打开一个终端,在里面输入:sudo apt-get install ros--ros-tutorials安装一个轻量级的模拟器,命令中的""需要替换为你自己的ros版本,若按照前面的教程的话,替换为hydro。 下面来看一下ROS中
2013-10-29 20:10:11 31880 12
原创 ROS的学习(五)在工作空间中构建和使用catkin包
在这篇博客中将会介绍,如何在工作空间中构建和使用一个包。 首先,我们来看一下如何在catkin工作空间中,使用catkin_make工具从源文件构建和安装一个包。使用catkin_make来构建一个catkin工作空间是非常容易的,您必须在catkin工作空间的顶层使用catkin_make命令。下面的演示了一个典型的工作流程:$ cd ~/catkin_ws/src/beginn
2013-10-28 21:11:35 19960 4
原创 ROS的学习(四)创建一个ROS包
ROS学习(三)中,笔者不知道catkin到底是个什么东东,后来终于在官方网站上找到了答案,原来catkin是ROS的一个官方的编译构建系统,是原本的ROS的编译构建系统rosbuild的后继者。catkin的来源有点复杂,我们可以慢慢的讲一下其中的渊源。ROS来源于Willow Garage这个公司,他们希望借助开源的力量,使ROS发扬光大。而在英语中,willow的意思是柳树,catkin是柳
2013-10-28 17:16:29 36571 7
原创 ubuntu下安装英汉词典——stardict
有时候需要在linux下面看一些英文资料,没有一个英汉字典真的是最痛苦的事,在windows下使用的都是有道字典。在ubuntu下使用什么词典好呢?经过我的一翻折腾,发现stardict是非常好用的,下面就介绍一下stardict的安装方法。/usr/share/stardict/dic 按ctrl+alt+t打开一个终端,在里面输入:sudo apt-get install st
2013-10-28 16:00:54 12894
原创 ROS的学习(三)创建一个工作空间
在官网上本节的题目是Creating a workspace for catkin,其中的catkin不知道是什么意思,在网上找到的结果是:(1)卡婷是一个广告公司,(2)葇荑花。这两种翻译显然都不太合适,不过不知道也没关系,影响不大。我们知道catkin是一个ROS中的工具就行了。本节的主要目的是创建一个catkin工作空间,在这个工作空间中,catkin的包可以被编译。 如果您还没
2013-10-28 15:24:48 31640 4
原创 ROS的文件系统
这篇博客介绍一下ROS的文件系统的基本概念,用户可以直接在官方网站:http://http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem去查看官方手册。 ROS文件系统中的两个最基本的概念:Package和Manifest,即包和清单文件。 Package是组织ROS代码的最基本单位,每一个Package都可以包括
2013-10-28 11:53:35 22166 1
原创 ubuntu更新软件源
身为在中国的ubuntu使用者,当您费劲千辛万苦安装好ubuntu,准备开始体验一下开源操作系统的魅力的时候,您会发现有很多的软件还没有安装或者是更新,这时候千万不要急着去安装或者更新,因为您还没有更新ubuntu的软件源,这样直接安装会非常的慢,慢到让人eggache。如果您先更新了软件源,一定会事半功倍。 按ctrl+alt+t打开一个新的终端,在里面输入:sudo gedit
2013-10-28 11:00:37 10070 3
原创 C++的学习(十)类和对象
终于把C++中的基础在前面的几篇博客中总结完了,可能还有一些语法还没有总结到,没关系,以后用到了再查资料就好。类是C++中的一个非常重要的概念,这是区别你使用的C++到底是面向过程还是面向对象的一个重要的标志。如果在你写的C++程序中没有使用到类,仅仅使用了C++中的几个库。那么你所使用的C++仍然是面向过程的,只有使用了类的C++程序才能说是面向对象的。当然前面的概念有些不太准确,面向对象是一种
2013-10-25 19:51:30 1169
原创 C++基础知识(八)例外、异常处理
对java熟悉的朋友们都很清楚,java中的异常处理机制是非常完善的。并且java强制使用异常处理,用户必须对有可能出现异常的情况进行处理。在c++中并没有强制用户使用异常处理,但是使用异常处理将会使您的程序更加的健壮。 在c++中,一个函数在执行的过程中可以识别异常(例外),并通告异常的发生。这种通告机制称为抛出异常,使用关键字throw。异常抛出后,可以由函数的调用者进行捕捉并进行
2013-10-25 15:34:36 1598
原创 C++基础知识(七)new和delete
学过c语言的人都知道,c语言中动态分配内存空间使用的是库函数malloc,calloc,realloc以及free。而c++中所使用的是关键字new和delete。如int* pi = new int;int* pa = new int[20];用new可以动态的分配内存空间,从上例可以看到使用很方便,比c语言中的malloc语法要简洁的多。对于上面的例子如何释放所分配的内存空间呢
2013-10-25 14:46:00 977
原创 C++基础知识(六)函数
c++中的函数和c语言中的函数相比,增加了许多新的语法与功能。在这里总结一下c++中常用的引用参数,函数重载和内联函数。 1、引用参数 说起引用参数最常用的一个例子就是交换两个数,如下:void swap(int& a,int& b){ int t = a; a = b; b = t;}void main(){
2013-10-25 14:25:26 1015
原创 C++基础知识(五)C++的一些特性
有人说,C++是由C语言往前走了一步而变成的,因为从语法角度上来看,C++就是在C的基础上自增了一。那么,C++和C语言相比,除了类(就是面向对象的那一套东西之外),基础语法增加的有哪些呢。 1、强制类型转换,C++中有四种强制类型转换,static_cast,const_cast,dynamic_cast,reinterpret_cast。 (1)static_
2013-10-25 13:25:46 1089
原创 C++基础知识(四)文件的基本操作
文件操作是各种编程语言中最基本的操作,而C++作为最为流行的编程语言之一,可以对文件进行灵活的操作,绝对能让你用起来得心应手。下面用一个例子来感受一下,C++中文件操作功能的强大。#include #include #include using namespace std;void copy(string s,string d){ //声明两个文件输入输出流 ifstrea
2013-10-25 11:56:35 1399
原创 C++基础知识(三)C++的输入和输出及操纵符
虽然在第一篇博客中已经总结了C++的基本的输入对象cin,但是感觉到有很多的东西还是没有总结到位,在此再补上一篇。我们都知道,C++对输入和输出采用的是文件流,这个和java是类似的。我们可以想象一下流的概念,数据就像流水一样,连续不断,前赴后继,感觉这个概念是很生动啊,流(stream)用的非常好。cin和cout是C++中的标准流。在这里我们着重回忆一下,流中操纵符的使用。输入和输出可以被操纵
2013-10-22 20:48:16 2148
原创 C++基础知识(二)命名空间
前面总结了C++中的键盘输入,经过一段时间的学习,终于基本上把C++的基础知识都预热了一遍。今天再做一个总结。 C++比C中多了一个命名空间,即用关键字namespace声明,为什么要使用命名空间呢。这是广大初学者都很迷惑的一个问题,其实很简单。举一个简单的例子,在信息学院有两个班级,计算机一班和计算机二班,在每一个班级中都有一个人叫做张小三。那么如果两个班级在一块上课,当老师点
2013-10-22 20:08:17 1272
原创 ROS的安装
学习ROS有两周了吧,发现网上的中文资料很少。再网上搜出来的好多ROS都是和路由器相关的一些东西,我们这里说的ROS是robot operating system,也就是机器人操作系统,所以我的学习主要是基于ROS的官网:http://wiki.ros.org。当然也有网友古月在csdn上发表了一系列关于ROS的学习博客,很有参考价值,可以在百度中搜索之,今天主要来讲述一下如何安装ROS。
2013-10-28 11:03:31 65215 74
原创 C++基础知识(一) 键盘输入
不得不说已经学过C++有两年的时间了,但是之前不论是做实验还是干活,所使用的工具都不是CPP。所以现在,基本上已经忘得差不多很可以了。现在重新开始对C++进行学习,写一些博客,对自己所学过的东西进行总结与思考。这里说的C++的基础知识是指,除过C++的面向对象那一套的所有的东西,因为这些是学习后面的面向对基础,所以称之为C++基础知识。 废话了
2013-10-21 11:02:22 4664
Accelerated C++中文版
2018-10-25
Webx3 Guide Book pdf
2018-09-26
java URLConnection全面解析(通俗易懂,包括cookie操作和上传文件)
2013-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人