导航

    蓝鲸ROS机器人论坛

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

    weijiz 发布的帖子

    • ROS基础知识

      ROS 简介

      1. 什么是ROS
        ROS 是 Robot Operation System 的简称。是专门为机器人控制开发的系统。和一般的操作系统相比增加了软件包管理,信息通信框架等。同时这个系统对硬件进行了抽象使得各个组件之间的耦合更低,程序开发也更加方便快捷。

      2. ROS 能在哪些平台上使用
        ROS官方版本基于Ubuntu进行开发。所以无论是arm架构还是x86架构都可以使用。即使你所使用的平台无法安装Ubuntu或者Debian,只要能够安装Linux系统就可以从源码编译安装ROS。OSX也可以安装ROS,不过是测试版本,安装使用过程中可能会遇到问题,并不推荐大家使用。Windows的ROS已经实现,但并未完全开发完成。

      3. ROS的版本区别
        ROS每年5月发布一个版本。其中单数年份发布为短期版本,支持时间为2年。双数年份发布的版本为长期支持版,支持时间为5年。最新的长期支持版是Kinetic Kame。现在一般网上的教程是基于Hydro或者 Indigo。这些教程和Jade和Kinetic版本是通用的。
        不同版本之间并不完全通用。比如你的机器人的系统是Indigo的,但是你的本地操作系统是Jade的那么系统间通信就有可能会出现消息格式不匹配的情况。所以不同系统间的版本尽量保持一致。

      4. ROS的学习路线
        ROS开发中主要使用的语言是C++和Python,你需要对这两种语言都比较熟悉。同时ROS基于Ubuntu操作系统,这也要求你对Ubuntu比较熟悉。
        首先你可以先读完这篇文章,对于ROS的架构和基本概念有一个初步的认识。然后看官方wiki中的Tutorial 。
        同时Learning ROS for Robotics Programming Second Edition也是一个不错的选择。
        你也可以按照这个ROS思维导图的方式来学习。
        在对ROS比较熟悉之后,如果你想了解更多关于ROS设计方面的东西可以看看REP
        如果想要了解关于ROS2方面的信息可以看这里
        在实际使用中会遇到很多问题,欢迎在我们的ROS交流群中提问(538456117)
        当然想要更深入的了解ROS,阅读源代码也是一个不错的选择
        ROS源代码
        ROS2源代码

      5. ROS的未来
        ROS虽然大大方便了机器人开发,在业内有很广泛的应用,但是实际使用中还是有挺多问题。比如稳定性,网络带宽和多机器的情况下的自动连接等等。这些功能都会在ROS2中实现。随着ROS的不断发展,相信其在机器人行业会有越来越好的发展前景。

      ROS的架构

      ROS与其说是操作系统其实更像一个通信框架。ROS的基本单元是节点(Node)。节点之间可以通过订阅和发布Topic进行通信。节点的基本信息会存储在Master里面。下面以一个例子具体说明。假如我们现在有一个激光雷达,然后我们想要通过图形界面显示雷达的数据。那么整个结构就如下图所示

      0_1506330911799_QQ截图20170925154958.png

      激光雷达有一个节点叫做hokuyo,图形界面有一个节点叫做viewer。激光雷达节点从传感器读出数据之后,首先告诉Master自己在发布一个叫做scan的topic。然后在本地监听2345端口,等待其他节点连接。图形界面节点viewer启动之后,首先告诉Master自己在订阅一个叫做scan的topic。这时候Master就会告诉viewer节点谁在发布scan。Viewer获得到hokuyo的地址和端口信息后和hokuyo节点建立TCP连接。这样激光雷达的数据就从hokuyo节点发送至viewer节点了。
      通过这种架构可以实现节点的分布式处理功能。即不同的节点不要求一定在同一个机器人上。比如上例中的激光雷达节点和viewer节点就可以在不同的机器人上。也可以进一步实现多台机器人的调度。

      ROS的基本概念

      从上例我们可以看出ROS中有以下几个比较重要的基本概念

      1. Master
        Master就是存放各种节点和topic信息的地方。节点之间通过Master了解到对方的信息。同时在Master的帮助下节点之间建立网络连接。
      2. Node
        基本的ROS计算单元。
      3. Topic
        节点之间的通信通道
      4. Parameter Server
        参数服务器。在使用过程中可能不同的节点间要共享一些参数。这些参数就可以放在参数服务器里面。其作用就类似于不同节点公用的全局变量。在上面的例子中没有用到参数服务器。

      ROS的安装

      下面以Kinetic版本为例说明ROS的安装方法。

      1. 安装Ubuntu 16.04
      2. 添加ROS源
      sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
      
      1. 添加源的key
      sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
      
      1. 安装
      sudo apt-get update
      sudo apt-get install ros-kinetic-desktop-full
      
      1. 初始化rosdep
      sudo rosdep init
      rosdep update
      

      ROS的环境变量

      ROS运行时依赖一些环境变量,所以我们要把其添加到自己的终端配置文件中。

      echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
      source ~/.bashrc
      

      这样就会在bash中添加source /opt/ros/kinetic/setup.bash这样一行语句。每次打开一个终端都会执行上面的脚本。这个脚本会设置ROS相关的一些环境变量。

      下一步

      ROS tutorial

      发布在 技术交流
      weijiz
      weijiz
    • rqt_graph报错global name 'dot_parser' is not defined

      产生这个问题的原因是rqt_graph用到了pydot而pydot默认版本只支持pyparsing < 2.0版本。而现在系统中pyparsing的默认版本是大于2.0的。幸运的是新版的pydot已经解决了这个问题。所以解决方法很容易,就是升级pydot的版本。

      sudo pip install -U pydot
      
      发布在 技术交流
      weijiz
      weijiz
    • RE: 伽利略视觉导航系统API v1 alpha

      速度的设置?可以控制机器人运动的速度以适应不同的应用场景

      发布在 产品服务
      weijiz
      weijiz
    • 如何在本地运行open street map服务器

      open street map是一个开源的地图平台。网站http://www.openstreetmap.org/

      网页程序的源代码在这里 https://github.com/openstreetmap/openstreetmap-website/

      虽然官方有安装说明,但是由于说明的太过简略,很多关键地方没有说明,导致想要让程序在本地运行起来都很困难。下面就是我很费劲才摸索出的安装和运行方法。

      以下都是以 Ubuntu 16.04 为例

      安装依赖

      sudo apt-get install ruby2.3 libruby2.3 ruby2.3-dev \
                           libmagickwand-dev libxml2-dev libxslt1-dev nodejs \
                           apache2 apache2-dev build-essential git-core \
                           postgresql postgresql-contrib libpq-dev postgresql-server-dev-all \
                           libsasl2-dev imagemagick
      sudo gem2.3 install bundler
      

      下载源代码

      git clone --depth=1 https://github.com/openstreetmap/openstreetmap-website.git
      

      ruby gems

      cd openstreetmap-website
      bundle install
      

      这里最好先把ruby的源换成国内的,否则速度非常慢,换源的方法可以自己搜索一下

      复制配置文件

      cp config/example.application.yml config/application.yml
      

      配置数据库

      cp config/example.database.yml config/database.yml
      
      sudo -u postgres -i
      createuser -s <username>
      exit
      
      bundle exec rake db:create
      
      psql -d openstreetmap -c "CREATE EXTENSION btree_gist"
      
      cd db/functions
      make libpgosm.so
      cd ../..
      
      psql -d openstreetmap -c "CREATE FUNCTION maptile_for_point(int8, int8, int4) RETURNS int4 AS '`pwd`/db/functions/libpgosm', 'maptile_for_point' LANGUAGE C STRICT"
      psql -d openstreetmap -c "CREATE FUNCTION tile_for_point(int4, int4) RETURNS int8 AS '`pwd`/db/functions/libpgosm', 'tile_for_point' LANGUAGE C STRICT"
      psql -d openstreetmap -c "CREATE FUNCTION xid_to_int4(xid) RETURNS int4 AS '`pwd`/db/functions/libpgosm', 'xid_to_int4' LANGUAGE C STRICT"
      
      bundle exec rake db:migrate
      
      

      测试一下

      bundle exec rake test:db
      

      配置

      以上的步骤都是官方文档里的说明,如果你想要了解更多细节可以看这里

      按照官方文档下面运行

      bundle exec rails server
      

      就可以在http://localhost:3000访问网站了。但是实际上并不可以。

      你还要进行下面的步骤

      1. 编译assets
      bundle exec rake assets:precompile
      

      否则会报各种缺文件的错误

      1. 注册用户
        当你开始编辑的时候需要在本地的网站上注册用户。其中有邮箱的验证过程,然而本地的服务器是不会发邮件的,这样也就没办法认证。解决方法有两种,一种是改数据库里面的数据,设置用户为已认证。另一种就是,虽然没办法发邮件,但是邮件的内容会在终端输出来,把链接地址复制到浏览器里面就可以了。注意吧地址改成本地的。

      2. 申请用户token
        当你注册完成之后你会发现你没办法保存自己修改的地图。甚至无法打开地图编辑页面。会有各种create_token没有定义的错误。这是由于没有给自己本地的网站设置token的原因。
        在浏览器打开http://localhost:3000/user/randoms/oauth_clients/new其中的randoms要换成你自己注册的用户名。打开如下的界面

      0_1499324670768_TIM截图20170706150411.png

      名字可以随便输入,Main Application URL 写成 http://localhost:3000,当然如果你的地址不是localhost要根据自己的情况进行调整。把下面的选项全部勾上,点击注册就可以了。

      注册完成之后会出现下面的页面

      0_1499324858307_TIM截图20170706150730.png

      这样我们就获得了Consumer Key了

      打开源代码中的config/application.yml文件
      把server_url的值修改成http://localhost:3000
      把oauth_key的值修改成刚才获得的Consumer Key
      把id_key的值修改成刚才获得的Consumer Key

      保存修改然后运行

      bundle exec rails server
      

      就可以在本地使用了

      最后再吐槽一下官方的文档,缺少的东西太多了。。。

      发布在 技术交流
      weijiz
      weijiz
    • django test 无法正常退出的问题

      在用django的时候如果你在程序里开了其他线程(比如用作后台的长期服务程序)。那么在用django自带的测试程序就会有问题。测试完成之后程序无法自动退出。这是由于开启的线程还在运行的原因。

      解决方法也比较简单。这是因为django的测试代码中用的是sys.exit()来退出。但是当python程序还有其他线程在执行的时候这个指令是没办法退出的。
      把 django/core/management/commands/test.py

      def handle(self, *test_labels, **options):
              from django.conf import settings
              from django.test.utils import get_runner
      
              TestRunner = get_runner(settings, options['testrunner'])
      
              test_runner = TestRunner(**options)
              failures = test_runner.run_tests(test_labels)
      
              if failures:
                  sys.exit(1)
      

      改为

      def handle(self, *test_labels, **options):
              from django.conf import settings
              from django.test.utils import get_runner
      
              TestRunner = get_runner(settings, options['testrunner'])
      
              test_runner = TestRunner(**options)
              failures = test_runner.run_tests(test_labels)
      
              if failures:
                  os._exit(1)
              os._exit(0)
      

      就是采用os._exit()进行退出。这样其他线程能够收到SIGINT的信号,然后回收资源退出就可以了。

      发布在 技术交流
      weijiz
      weijiz
    • 升级新版的远程连接服务SharpLink

      最近对远程连接服务进行了很大程度的升级,修复了许多已有的和新发现的问题,建议对远程连接服务有需求的用户进行升级。新版本的稳定性和可用性都有了很大的提高。

      安装c-toxcore

      Github地址
      按照上面说明的安装方法进行安装

      安装SharpLink

      首先删除旧版本的SharpLink,一般在/Documents/SharpLink
      安装新版本

      cd  ~/Documents/ros/src
      git clone https://github.com/BlueWhaleRobot/SharpLink
      cd ~/Documents/ros
      catkin_make
      

      新版本的已经做成了catkin package可以通过catkin_make来编译安装。

      安装服务文件

      在/etc/init/文件夹内应该有一个叫toxserver.conf的文件,如果没有则创建一个。内容为

      description "tox server daemon"
      start on runlevel [2345]
      stop on runlevel [06]
      
      script
          chdir /home/xiaoqiang/Documents/ros/devel/lib/sharplink
          exec /home/xiaoqiang/Documents/ros/devel/lib/sharplink/SharpLink.exe
      end script
      
      

      创建完成后执行

      sudo service toxserver start
      

      然后执行

      sudo service toxserver status
      

      如果出现
      0_1497924511876_upload-aa4aca13-717b-4f20-8288-4d5b949ae3be

      就说明已经安装成功了。
      新版本的ID可以通过下面的指令获取

      cd /home/xiaoqiang/Documents/ros/devel/lib/sharplink
      cat ./server.log | grep -E "[0-9]+, ID: [0-9A-F]{76}" | grep -oE -m1 "[0-9A-F]{76}"
      
      发布在 产品服务
      weijiz
      weijiz
    • 小强远程连接SharpLink Android版使用

      下载地址

      SharpLink.apk

      源码地址

      SharpLink-Android

      SharpLink是小强中用来远程协助的程序。用户可以通过SharpLink把小强的端口映射到本地,这样就即使不在同一个局域网中也可以远程访问小强。SharpLink-Android就是SharpLink的Android版本。这样就可以通过手机配合遥控App(目前提供的APP还不可以,因为使用了UDP而SharpLink是TCP的)来远程控制小强了。

      使用方法

      下载安装最上面的APK。打开APP
      0_1497923550352_Screenshot_2017-06-20-09-51-17-594_com.companyname.sharplink.png
      在服务器ID处输入自己的ID,ID可以通过这里的方法获取。
      在服务器端口处输入你想要连接的小强端口。输入完成后点击CONNECT按钮,等待按钮变绿就可以了。
      这时小强的目标端口就被隐射到本地的23232端口了。你可以像访问小强一样的访问23232端口。

      发布在 产品服务
      weijiz
      weijiz
    • RE: 查拉图斯特拉如是说

      当然很多人可能连天是什么都不太清楚,那就是另外一个问题了。

      发布在 杂谈
      weijiz
      weijiz
    • 查拉图斯特拉如是说

      查拉图斯特拉如是说是尼采的一本书,书中通过查拉图斯特拉的一些故事来说明尼采自己的观点。我很早就把这本书看完了,同时还有尼采的其他作品。这部作品对我的影响还是比较深的。今天在豆瓣阅读上看到这本书,同时还有其他读者的一些批注。我觉得很多人并没有理解这本书的真正含义。下面就说说我的理解,当然我也认为这是尼采真正想表达的思想。

      我想从我当初的经历来说起。当初在刚入大学时,有一位老师专门教我们传统文化。宣传儒家思想。经常会说传统文化如何如何的好,让我们向传统学习。让我们每天都要读弟子规。那时我认为老师说的很有道理,每天早晨起来都会读弟子规。后来这个课结束了,很多学生也受其影响开始读儒家经典。我记得我好像是读了大学。不仅读,我还身体力行。里面怎么说我就怎么做。比如里面说坐的时候,手脚怎么放,走路时又应该怎么走。甚至我看到别人懒懒散散的样子也会非常鄙视。但是过了一段时间我觉得这很有问题。我是一个人,又不是机器人,为什么连怎么坐,怎么走路也要按照这个标准,甚至对不这么做的人还很厌恶。即使我不按照这种方法坐,不按照这种方法走,又有什么问题呢?我觉得这些违背了人的本性。

      后来我看了一本尼采的作品集。因为有过这种经历就很容易明白尼采在说什么。尼采的主要观点围绕着天和地两个意象。天就是大家所推崇的一种价值观。这种价值观看起来非常的高尚。地就是人的本性。尼采不停的说上帝已死,人要回归到大地中去。就是说传统的价值观违背了人性,人要回归到本性。一直待在天上人会失去生命力。

      其实天和地的区别也并不是那么大。人肯定是从地生出来的。然而人类为了活下去,为了更好的生存,又发明了天。天的本质实际上是更好的为地去服务。然而时间久了人就忘了自己是从地中来了。反而为天而活着。这就是本末倒置了。

      发布在 杂谈
      weijiz
      weijiz
    • 伽利略视觉导航系统API v1 alpha

      伽利略视觉导航系统SDK v1 alpha正在开发中。我们发布了API的草案。希望大家能够根据自己的使用场景和需求提出修改意见,来更加完善这个导航系统。

      想要了解这个系统的基本信息和演示视频可以看这里

      在线版本

      pdf版本

      所有的意见都是欢迎的。:-D

      正式发布后,所有提出修改意见的人和小强用户都可以免费使用伽利略导航系统。

      发布在 产品服务
      weijiz
      weijiz
    • RE: 小强机器人惯性导航,在遇到障碍物时会动态蔽障吗。

      @alice 在 小强机器人惯性导航,在遇到障碍物时会动态蔽障吗。 中说:

      请问,小强机器人惯性导航,在遇到障碍物时会动态蔽障吗。是用了navigation功能包实现的惯性导航吗

      只是惯性导航的话是用红外进行避障的,遇到障碍物只能停下来。如果想要绕过去要增加其他传感器才行。

      发布在 讨论区
      weijiz
      weijiz
    • 蓝鲸个人中心的使用

      为了方便大家使用小强,我们新增了蓝鲸个人中心的功能。通过这个软件用户可以方便的对小强 进行远程管理。比如查看硬件信息,CPU,内存的使用情况,修改文件和远程连接。
      在新版的蓝鲸ROS中已经包含了这个程序

      安装

      git clone http://randoms@git.bwbot.org/publish/BwbotCenter.git
      git checkout client
      virtualenv -p /usr/bin/python3 venv
      source venv/bin/activate
      pip install -r requirement.txt
      

      添加服务
      对于Ubuntu 14.04版本的系统把BwbotCenter文件夹内的bwbotcenter.conf复制至/etc/init内。然后把文件中的路径改成自己对应的路径。
      然后执行

      sudo service bwbotcenter start
      

      对于Ubuntu 16.04版本及以后版本的系统。在/usr/lib/systemd/system文件夹中创建一个bwbotcenter.service的文件,文件内容入下

      [Unit]
      Description=bwbot center daemon
      After=network.target
      
      [Service]
      WorkingDirectory=/home/randoms/Documents/ros/src/BwbotCenter
      ExecStart=/home/randoms/Documents/ros/src/BwbotCenter/start.sh
      Restart=always
      
      [Install]
      WantedBy=network.target
      

      在终端输入

      sudo systemctl enable bwbotcenter.service
      sudo systemctl start bwbotcenter start
      

      使用

      1. 注册
        在浏览器输入http://center.bwbot.org,在打开的页面中注册用户。

      0_1495624410209_QQ截图20170524191319.png

      1. 添加设备
        登录完成之后主界面如下图所示

      0_1495624582097_QQ截图20170524191524.png

      当然你可能没有这么多设备,下面就要添加自己的设备。首先要获取到自己的ID,获取方法可以参照这里。如果你安装了新版本的蓝鲸ROS,那么可以通过bwgetid来获取自己的ID。

      获取ID后右键点击设备列表0_1495625068702_QQ截图20170524192406.png

      然后选择添加设备,在弹出的添加设备对话框中输入自己的设备ID和类型
      0_1495625141275_QQ截图20170524192530.png

      完成后点击确认就可以了。添加完成的设备会显示在左侧菜单栏里面。

      1. 设备管理
        点击左侧刚添加的设备就可以看到可以进行的操作了。
        0_1495625484623_QQ截图20170524193107.png
        基本信息包含了设备的各种信息汇总。CPU和内存的使用情况的实时显示。硬盘的空间使用情况等等。
        文件管理可以通过这个软件对小强的文件进行添加修改等操作。
        远程连接会打开一个远程连接小强的ssh窗口。
        软件包管理会显示出小强上安装的各种软件包。(尚未开通)

      通过个人中心,我们可以在不需要知道小强IP的情况下对小强进行操作。使用起来非常方便。

      发布在 产品服务
      weijiz
      weijiz
    • 蓝鲸ROS中的自定义指令使用和安装

      在蓝鲸ROS中,添加了一些很有用的脚本指令。方便大家使用小强。

      1. bwupdate
        更新功能
        我们经常会发布小强的一些软件更新。以前只能手动更新,现在增加了一个自动更新的命令。
        在终端输入
      bwupdate
      

      输出如下图所示
      0_1495609846715_Screenshot from 2017-05-24 15-08-53.png
      这个程序会检查有没有可用的更新并更新本地程序。

      1. bwgetid
        获取用户ID信息
        在终端输入
      bwgetid
      

      终端会输出一长串字符,这个就是你的设备的ID。通过这个ID可以进行远程协助和设备管理的操作。

      1. fixudev
        修复串口udev规则。在使用过程中可能会出现udev规则被修改的情况。通过这个指令可以还原udev规则。
        在终端输入
      cd /home/xiaoqiang/Documents/xiaoqiang-cmds
      sudo ./fixudev
      

      提示修复成功就可以了。

      安装方法

      下载程序

      cd ~/Documents
      git clone http://git.bwbot.org/publish/xiaoqiang-cmds
      

      如果使用的是xq os 2那么需要checkout 到kinetic分支

      git checkout kinetic
      

      修改环境变量

      在 ~/.bashrc文件中添加

      export PATH=/home/xiaoqiang/Documents/xiaoqiang-cmds:$PATH
      alias sudo='sudo env PATH=$PATH'
      
      发布在 产品服务
      weijiz
      weijiz
    • autowifi 发布

      在第一次拿到小强时,必须连接到网络才能进行一系列的操作。而想要连接网络必须要给小强连接显示器。这对于很多用户来说是很不方便的事情。有了autowif就可以很好的解决这个问题了。

      手机端下载地址

      电脑端地址

      硬件要求

      有无线网卡

      安装方法

      1.电脑端安装
      在新版的蓝鲸ROS中已经安装完成,可以直接使用

      git clone http://randoms@git.bwbot.org/publish/autoWifi.git
      cd autoWifi
      virtualenv venv
      source venv/bin/activate
      pip install -r requirement.txt
      

      添加服务
      对于Ubuntu 16.04 及以后的系统,在/usr/lib/systemd/system文件夹创建autowifi.service。内容如下

      [Unit]
      Description=auto Wifi service daemon
      After=network.target
      
      [Service]
      WorkingDirectory=/home/randoms/Documents/ros/src/autoWifi
      ExecStart=/home/randoms/Documents/ros/src/autoWifi/start.sh
      Restart=always
      
      [Install]
      WantedBy=network.target
      

      注意把路径改成自己对应的路径

      启动服务

      sudo systemctl enable autowifi.service
      sudo systemctl start autowifi.service
      

      2.手机端安装
      下载安装最上面的那个apk就可以了。

      使用方法

      在电脑端运行autowifi的情况下。如果现在电脑端没有网络连接。我们就可以通过操作手机客户端,控制电脑端连接上无线网络。

      手机连接上想要电脑端连接的wifi。打开手机客户端,在输入框输入wifi密码

      0_1495609181816_Screenshot_2017-05-24-14-58-02-437_org.bwbot.autowifi.png

      0_1495609198791_Screenshot_2017-05-24-14-58-07-620_org.bwbot.autowifi.png

      等待大概几十秒就能连接成功了。

      注意:
      连接的时候要保证电脑和手机的wifi信号比较强,否则可能连接失败

      发布在 产品服务
      weijiz
      weijiz
    • 蓝鲸ROS测试版v1.0a发布

      发布时间: 2017-5-24 10:13:50

      下载地址

      part1
      part2

      MD5: 9b70cf95a73747396c2669b86ae24fe8

      这两个文件都是需要的,下载完成后再解压可以得到iso文件。
      下载完成之后一定要做一下md5的检查,确认文件完整性
      注意安装时的用户名只能是xiaoqiang,否则会有问题

      系统截屏展示

      0_1495592616564_Screenshot from 2017-05-24 10%3A15%3A30.png

      0_1495592628878_Screenshot from 2017-05-24 10%3A15%3A47.png

      0_1495592637771_Screenshot from 2017-05-24 10%3A17%3A21.png

      0_1495592646229_Screenshot from 2017-05-24 10%3A17%3A41.png

      0_1495592655499_Screenshot from 2017-05-24 10%3A18%3A06.png

      更新信息

      1. 增加AutoWifi功能,第一次使用时可以不连接显示器,直接设置小强的无线网络。具体使用可以参照这里。
      2. 增加蓝鲸个人中心功能。可以通过个人中心方便的对自己的设备进行控制。具体使用可以参照这里。
      3. 增加一些有用的指令,比如修复udev规则,自动更新,获取ID信息。具体使用可以参照这里。
      4. 设置用户更加友好的系统主题。
      5. 增加远程桌面功能。
      6. 修复一些bug。比如删除安装完成之后的残留文件。
      7. 整理系统内的文件结构。

      安装说明

      在虚拟机中安装

      打开虚拟机软件,这里使用的是Virtualbox。下载地址

      点击创建按钮,开始创建虚拟机

      0_1495594526247_QQ截图20170524104758.png

      按照图上设置,完成后点击下一步

      0_1495594567265_QQ截图20170524104821.png

      内存建议设置成2G,内存太小可能会导致无法启动

      0_1495594728592_QQ截图20170524105832.png

      0_1495594591195_QQ截图20170524104827.png

      0_1495594595755_QQ截图20170524104833.png

      0_1495594621541_QQ截图20170524104845.png

      设置完成后,点击上面的设置按钮。在弹出的对话框中选择存储。点击存储界面右侧的光盘图标设置镜像文件

      0_1495594640277_QQ截图20170524104941.png

      设置完成之后点击主界面的启动按钮。等待载入系统的选择界面。

      0_1495595021561_QQ截图20170524105031.png

      如果想要安装系统则选择第二个选项,之后按回车确认。
      等待系统安装程序载入,这个过程和你的机器性能相关,如果机器性能较差可能会载入较长时间。

      0_1495595514153_QQ截图20170524111138.png

      载入完成之后设置用户信息,注意用户只能是xiaoqiang, hostname可以随意设置。

      0_1495595659911_QQ截图20170524111410.png

      点击下一步进入分区界面。
      选中你要安装的硬盘,然后点击Delete按钮

      0_1495595742333_QQ截图20170524111500.png

      再次选择硬盘中的新分区

      0_1495595803274_QQ截图20170524111613.png

      点击箭头进入下一步

      0_1495595848336_QQ截图20170524111719.png

      再次选择刚才新建的分区
      设置右侧的Mount point,再次点击箭头进入下一步

      0_1495595948157_QQ截图20170524111846.png

      点击右下角的next就可以继续了。如果你还想设置其他分区可以按照以上的步骤进行设置。

      0_1495596017069_QQ截图20170524112010.png

      等待系统安装完成后重新启动就可以了。

      在实际的电脑上安装

      安装过程和一般的安装Ubuntu是一样的。下面介绍一下如何用U盘安装系统。
      首先你要在自己的硬盘上准备一个空白的分区用来安装系统。
      然后下载ultroiso软件。 下载地址
      在电脑上插入自己的U盘。
      用软件打开iso文件。在菜单栏中选择启动 -> 写入硬盘镜像,弹出界面如下

      0_1495596681353_QQ截图20170524113112.png

      点击写入,等待写入完成。

      写入完成之后,把U盘插入想要安装系统的电脑上。启动时进入BIOS选项,选择从U盘启动。后面的安装过程就基本上是一样的了。

      注意在分区的时候,要给boot单独的分区,然后选择下面的grub安装位置。否则系统安装完成后是无法启动的。对于不同的启动方式分区也有些不同。以grub方式启动的要给/boot单独分区,以uefi方式启动的要给/boot/efi单独分区

      发布在 产品服务
      weijiz
      weijiz
    • 解决systemback 无法生成超过4G的iso的问题

      systemback是一个很好的备份还原软件。用它还可以生成自己的linux系统镜像文件。但是在使用时会发现当生成的sblive文件大于4G的时候是没有办法生成iso文件的。这是由于iso文件自身的限制,iso9600对于文件有限制,单个文件不能超过2G,总的iso文件不能超过4G。

      但是我们经常见到的系统安装iso文件很多都是超过4G的。这是怎么回事呢。经过我的苦苦搜索终于找到了一点线索。对于大于4G的可以采用udf文件系统。下面就是具体的解决方法了。

      1. 解压 .sblive 文件:
      mkdir sblive
      tar -xf /home/systemback_live_2016-04-27.sblive -C sblive
      
      1. 重命名 syslinux 至 isolinux:
      mv sblive/syslinux/syslinux.cfg sblive/syslinux/isolinux.cfg
      mv sblive/syslinux sblive/isolinux
      
      1. 安装 cdtools
      aria2c -s 10 https://nchc.dl.sourceforge.net/project/cdrtools/alpha/cdrtools-3.02a07.tar.gz
      tar -xzvf cdrtools-3.02a07.tar.gz
      cd cdrtools-3.02
      make
      sudo make install
      
      1. 生成 ISO 文件:
      /opt/schily/bin/mkisofs -iso-level 3 -r -V sblive -cache-inodes -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o sblive.iso sblive
      

      这样就可以了,估计当文件大于4G的时候程序会自动采用udf文件系统,所以可以成功创建iso文件。

      发布在 技术交流
      weijiz
      weijiz
    • apt-get install 下载太慢怎么办,用apt-fast!

      默认的apt-get install 有时候会下载非常慢,尤其是添加的一些ppa,这时候你就需要apt-fast这个软件了。
      apt-fast 通过使用多线程下载来给apt-get 提速。经过测试效果出奇的好。
      下面是安装方法

      添加软件源并安装

      sudo add-apt-repository ppa:apt-fast/stable
      sudo apt-get update
      sudo apt-get -y install apt-fast
      

      使用

      在弹出的对话框中选择apt-get。安装完成之后使用方法和apt-get 是一样的。比如安装python3.5

      sudo apt-fast install python3.5
      

      这样就可以了。注意可能会弹出选项让你确认是否安装,选择是就可以了。
      这个项目的地址https://github.com/ilikenwf/apt-fast

      发布在 技术交流
      weijiz
      weijiz
    • Ubuntu 14.04安装和使用python3.5

      python3.5增加了很多非常棒的特性,比如协程。用起来很好,但是Ubuntu 14.04系统默认的源里面并没有包含。
      下面是Ubuntu 14.04 python3.5的安装方式

      添加源

      sudo add-apt-repository ppa:fkrull/deadsnakes
      

      安装

      sudo apt-get update
      sudo apt-get install python3.5
      

      使用

      网上很多的安装教程是把python3.5替换成系统默认的python环境。这样并不好。可能会引起系统的问题。
      推荐的使用方法是用virtualenv

      安装virtualenv

      sudo apt-get install python-virtualenv
      

      使用virtualenv

      在你的代码文件夹内执行

      virtualenv -p /usr/bin/python3.5 venv
      

      这样会在当前路径下创建一个venv的文件夹,执行下面的指令

      source venv/bin/activate
      

      0_1494558117617_Screenshot from 2017-05-12 11:01:51.png
      这时候终端的前面会多出一个venv的字符。这说明已经进入python的虚拟环境了。在这里安装的python包不会对系统产生影响,反之系统的包也不会对当前环境产生影响。注意一定不能用sudo pip install xxxx来安装python包。这样会安装到系统里面去。直接pip instal xxxx就可以了。

      发布在 技术交流
      weijiz
      weijiz
    • ubuntu 安装VNC 服务

      在用Ubuntu的时候经常需要远程桌面连接,最常用的软件就是VNC。VNC是一个开放的协议,实现的客户端有很多。但是比较各个实现之后,目前最好的就是x11vnc。这个程序不仅不收费,是开源的,而且还支持opengl程序。比如rviz之类的程序也可以正常打开了。

      小强镜像中默认已经安装好了x11vnc,如果你使用小强主机或镜像,那么可以直接跳过安装过程。按照访问服务的说明进行操作。

      下面介绍一下安装方法。下面是以Ubuntu 14.04为例子,如果是16.04及以后版本要对服务配置文件做对应修改。

      安装x11vnc

      sudo apt-get install x11vnc -y
      

      设置访问密码

      sudo x11vnc -storepasswd /etc/x11vnc.pass 
      

      创建服务文件

      在/etc/init 下创建一个x11vnc.conf的文件,文件内容如下

      description "xiaoqiang vnc server"
      start on runlevel [2345]
      stop on runlevel [06]
      
      script
          exec /usr/bin/x11vnc -auth guess -capslock -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared
      end script
      

      启动服务

      sudo service x11vnc start
      

      访问服务

      下载一个vnc客户端,比如从这里下载
      打开客户端
      输入目标IP
      0_1494494926161_QQ截图20170511172718.png
      连接后输入密码
      0_1494494976059_QQ截图20170511172925.png
      之后就可以正常连接了。

      对于16.04版本和更新版本的Ubuntu,
      可以按照这个文件的方法进行配置
      https://github.com/longhr/ubuntu1604hub/blob/master/ubuntu1604VNC.sh

      注意安装完成之后在不插显示器使用rviz时还是会报错。这时候插上hdmi转vga的转接头(不接显示器,只是转接头)就可以打开正常使用了。如果想要调整分辨率可以像正常电脑设置分辨率一样,在设置里面进行调整

      对于20.04系统和16.04里面的创建方式基本一致,但是服务文件要做稍许变动

      [Unit]
      Description=Start x11vnc at startup.
      After=multi-user.target
      [Service]
      Type=simple
      ExecStart=/usr/bin/x11vnc -auth /run/user/1000/gdm/Xauthority -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared
      [Install]
      WantedBy=multi-user.target
      

      而且在用户没有登录的情况下vnc无法远程。

      发布在 技术交流
      weijiz
      weijiz
    • RE: 使用systemback制作Ubuntu自定义系统镜像和系统备份

      在备份过程中可能提示

      The restore point creation is aborted!
      There has been critical changes in the file system during this operation
      

      这并不一定是由于系统发生了严重的更改,只要是在复制文件的过程中出现错误都会出现这个信息。
      详细的错误信息可以通过

      systemback-sustart
      

      这个指令去调试,看看具体哪一个文件复制出了问题。极有可能的是权限问题。
      也可以通过这个指令去调试

      DBGLEV=3 systemback-sustart
      

      当错误出现后会在/tmp文件夹下创建一个systemback的错误信息文件。可以方便的通过这个文件去找到错误的原因。

      发布在 技术交流
      weijiz
      weijiz
    • 1
    • 2
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 31 / 36