posts in Jul, 2017
Install Global npm Package For Current User Without Privilege
2017-07-30
NPM is the most used package manager for node.js and JavaScript ecosystems. By using the global packages mechanism, a node.js package can be easily integrated into system shell and just works like a native command line utility (or even an desktop GUI program). However, by default, the global packages are installed as shared global packages across users and requires root privilege for maintenance, which may be unavailable for general user and also expose potential conflict of packages between users. This post will cover simple configuration for npm global package for current user only.
vector of bool in C++
2017-07-12
C++ is an evolvement of C with shared design principles of performance first, yet with consideration of convenience at the perspective of programmer. However, the former generally requires to implement the most suitable and dedicated data structure (that is to optimize) for common cases. The specialization results in inconsistency. This post is mainly about the vector of bool, which is a specialization of vector according to the standard template library (STL) of C++.
Service in ROS
2017-07-12
Followed by previous post covering message in ROS, this one introduce service in ROS. Service is another information exchange mechanism provided in ROS which provides RPC (remote procedure call) style request-response pattern. The service is defined by .srv file, which can be treated as a combination of two message representing service request and service reply, respectively. Most of information in this post is refer to Services page in ROS wiki, srv page in ROS wiki and source code for ROS core module.
Message in ROS
2017-07-12
Messages are spread across the whole system of a ROS instance, which are the essence and physical base of communication and coordination in ROS system. The message is a serializable and platform agnostic (in the perspective of OS, programming language, etc) specification of structured data. Most of information in this post is refer to msg page in ROS wiki and source code for ROS core module. A directly connected concept in ROS is Topic, which is named bus for message exchange, which will be covered in later post. The Service is also based on the infrastructure of message, which will be illustrated in next post.
Configure ROS Environment
2017-07-07
ROS, the robot operation system, is a flexible environment for writing robot software. It is not a traditional operating system but a software development framework including a collection of tools, libraries, and conventions to manage and reduce the complexity of robotic systems. The following configurations are based on the following environment. base: raw Ubuntu 16.04.2 amd64 ROS release: Kinetic (to be installed)