机器人领域主要国际会议与期刊列表

最近有几篇论文和机器人相关,在寻找目标会议的过程中梳理了一下目前接受度较高的会议和期刊,并整理如下。 (*)标是在我认知中评级或口碑较高的会议/期刊。列表基本按照字母排序。需要说明:(1)我的主要研究方向并非机器人,所以在整理的过程中难免有错误/疏漏;(2)细分领域因为缺乏相关知识所以无法一一列出;(3)我不太认可CCF的评级,所以没有包含。欢迎补充与指正。 机器人/人工智能(会议) AAAI** […]

机器人常用可视化仿真工具

机器人系统设计离不开仿真工具的支持。机器人仿真让我们在没有物理硬件的情况下也可以快速对算法进行验证;或者提高安全性,避免实验损伤我们的设备(比如在增强学习中,就需要大量random的exploration)。这篇文章我想介绍一下当前主流的可视化仿真工具。一般来说这些仿真工具在物理引擎之上进行包装,如基于ODE、 Bullet等。有些情况下我们只需要使用物理引擎就可以满足需要,但一般情况下我们也想通 […]

实时系统 | 实时系统研究相关方向、会议与期刊

实时系统是计算机科学中的一个重要分支,其与嵌入式系统、操作系统、运筹与优化等领域具有较强关联。我读博期间选择了实时系统任务调度方向,多年下来也算有点经验。在这里,我总结一下实时系统领域内目前主流的几个研究方向,希望对初入这个领域的硕士/博士有所帮助。 1. 研究方向 多核任务调度:Global/partitioned multicore scheduling; 多核资源调度:Multiproces […]

你好,2019!

回顾2018年,因为科研工作忙碌,几乎没有新写文章,很多设立的目标没有达成。2019年需要再接再厉。 今年,我想主要围绕我自己的工作写一些中/英文的技术文章,在技术深度上稍加挖掘。云飞实验室在2019年设下的计划有: 增加实时系统相关的文章,包括实时操作系统的原理和任务调度等; 写若干机器人深度学习/深度增强学习的入门和调研文章; 自动驾驶中的一些关键技术; 写一些ROS与深度增强学习的结合使用; […]

RTOS | 实时操作系统杂谈

实时操作系统 (RTOS) 在工业控制、航空航天和电力系统中有大量应用。我自己接触实时操作系统已有几年时间,虽然实际的项目使用经验不多,然而耳濡目染还是积累了一些经验和知识。在这里整理和分享给大家。 实时操作系统(Real-time Operating System, RTOS)是针对有实时性要求的应用而设计的操作系统。这些应用通常包括汽车引擎控制、轨道交通、工业机器人、飞行器控制系统等。实时操作 […]

Linux | Linux系统全方位调试与维护工具整理

俗话说:“工欲善其事,必先利其器。” 在多年维护和开发Linux服务器的过程中,我接触了一些常用的开发和调试工具。本文将这些工具整理在一起,便于指导读者选择正确的工具。文中对于工具只有简单的介绍,需要详细的用法可以–help或自行Google。 本文针对的环境是CentOS/RedHat服务器 (需要epel库)。其他发行版应该也有相应的命令,但我没有一一测试。 系统管理 ssh: 远程登录 l […]

使用Markdown进行写作和文字记录

1. 背景 Markdown是一种语法简洁的标记语言 (Markup Language)。Markdown可以使用任何一种纯文本编辑器进行编辑,同时可以渲染、生成HTML。Markdown虽然是标记语言,但是和HTML比起来具有更好的可读性。与富文本(Rich Format Text, RTF)格式相比,Markdown的纯文本特性让使用者可以更加关注内容,专注于文字的表达。我多年前在友人的推荐下 […]

如何构建和管理自己的知识系统

1. 背景 三年前,我在做硕士毕业设计的时候第一次使用Evernote(印象笔记)收集资料,之后就一直使用Evernote记录一些备忘和生活琐事,但也没有形成相对完整的系统。开始读博士之后,我习惯随手在论文上记批注和笔记,觉得这样个人观点和原文的耦合度会比较高。但是等到要检索和引用资料时,脑中对这些知识点有些印象,可很多资料就是找不到出处,这时又要重新谷歌或者去翻文件夹。这让我思考是否需要将笔记做 […]

C语言 | 陷阱:数组溢出导致内存被意外修改

C语言的指针在提供编程便利的同时,却带来了很多潜在的内存安全问题。见以下例子: 该程序(不正确)的输出为: 上述代码使用sprintf修改了string_buff指针所指向的char型数组。但是由于在申明数组长度的时候,没有考虑到字符串结束符’\0’,所以实际写入时不慎篡改了下一位内存地址的内容(此例中为i_not_zero, 使用MinGW gcc)。在实际程序中,此类b […]

你好,2017!

又是新的一年。岁月匆匆,不给人时间回头看看,就又让人上路了。 今年更新了10篇左右的博文: 新增的”C语言深度”专题来源于我在嵌入式课程助教过程中发现的C语言的错误使用。我觉得C和C++是机器人领域最重要的两个语言,所以希望在这方面增加一些内容。 另几篇博文是介绍新发布的树莓派3代的。今年除了树莓派3,还入手了若干树莓派Zero。因为Zero很难买到,所以一下屯了5、6个。 […]

C语言 | 陷阱:数组指针作为函数参数返回

再来看一个指针问题,同样的来自一个本科生的代码。这段代码想要实现将一个全是小写字母的字符串转换成对应的大写字母字符串: 然而这段代码没有能实现期望的功能。原因如下: 主程序调用convert_to_upper_case()函数后,堆栈为p分配了内存空间; 函数体正确修改了p对应字符数组的内容,并将p的首地址作为指针返回; 函数返回后,所有临时变量从堆栈中弹出,包括p[100]; 主程序得到返回的指 […]

C语言 | 指针的一个错误赋值

关于指针总是有说不完的故事。 最近给本科的学生带Embedded System课程设计,遇到了一个非常奇怪的bug。有一段代码需要实现I2C通信,核心代码已经由软件库提供了,学生只需要设置结构体后调用API即可。一个学生的代码是这样的: 初看一下没有什么问题:在I2C_init()函数中首先对结构体cfg进行初始化,而在I2C_send()函数中设置了需要发送的数据指针,之后使用I2C的API发送 […]

RPi树莓派 | 树莓派官方7寸屏入门指南

1. 引子 在树莓派官方触摸屏发布之前,市场上可用的屏幕有以下三种: 直接和GPIO插口对接的屏幕,使用SPI与CPU进行通信。需要特殊的驱动程序将framebuffer的内容发送到LCD控制器上,一般带有触屏功能,大小以3.5寸为主流。受限于SPI通信速度,刷新速率不高; 专用USB接口的屏幕,如RoboPeak Mini USB Display。这类屏幕通过USB连接,需要本地运行驱动程序; […]

C语言 | C/C++变量命名规范

目前主流的C/C++命名风格有两种:一种是Windows风格的匈牙利命名法,主要是采用类型前缀 + 变量名首字母大写,另一个就是Unix/Linux命名习惯。我自己采用的是基于Unix的变种,融合了匈牙利命名法的一些优点,在这里分享给大家。 变量名的组成:(模块名) +  (作用域) + (类型前缀) + 变量名 + (变量名后缀),解释如下: 变量名 以小写的英文字母构成,词与词之间用下划线连接 […]

近日关注的几个KickStarter项目

KickStarter是国外最著名的众筹网站。项目发起者可以在只有基本idea的情况下提前发布产品信息,以获得来自个人的资金支持,达到满意的标准后再进行产品的实际生产,从而减少了产品发售的风险。 这几天在KS上比较热门的科技项目都是智能设备/可穿戴设备,这里我聊一聊几个我最近关注的项目。 1. Sweep激光雷达 项目主页:https://www.kickstarter.com/projects/ […]

如何做一个好的博客

我从2010年开始写博客。在过去的五年多时间里,除了自然而然增长的博文数量外,我的博文质量也在潜移默化的提高。然而这种质量的提高并不完全是自然形成的,这是需要不断思考博客的核心价值,同时在不断迭代的设计中艰难地产生的。每个人对自己的博客有一个定位,也有自己对于好博客的一套衡量标准。我从我自己以往产生的经验,来谈谈我眼中的好博客应该是什么样子的。 首先,一个好的博客需要是原创的,至少是半原创的。没有 […]