首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >系统,工具,源码,语言组成的数字世界-2021-

系统,工具,源码,语言组成的数字世界-2021-

作者头像
zhangrelay
发布2021-03-03 15:36:01
发布2021-03-03 15:36:01
48800
代码可运行
举报
运行总次数:0
代码可运行

最近一些时间,主要阅读代码,包括题中所涉及的,常常思考“0”和“1”的奇妙之处,但无奈过于愚钝,未能开悟。

几乎所有现实中的人,沉溺于数字产品的时间越来越久,无论游戏,还是娱乐,或者购物,还有读书。

手机比电脑方便许多,闲暇时很少再看到发呆的现象,而多是被这屏幕勾去了魂魄,渐渐被数字产品所“奴役”。

系统:无非Computer和Phone,最近看Linux,工具:机器人类ROS2,源码:Github,语言:C/C++

Linux内核:github.com/torvalds/linux

发现led是所有系统必备的部分呢。以Linux为例:

github.com/torvalds/linux/blob/master/drivers/leds/leds.h

代码语言:javascript
代码运行次数:0
运行
复制
#ifndef __LEDS_H_INCLUDED
#define __LEDS_H_INCLUDED

#include <linux/rwsem.h>
#include <linux/leds.h>

static inline int led_get_brightness(struct led_classdev *led_cdev)
{
	return led_cdev->brightness;
}

void led_init_core(struct led_classdev *led_cdev);
void led_stop_software_blink(struct led_classdev *led_cdev);
void led_set_brightness_nopm(struct led_classdev *led_cdev,
				enum led_brightness value);
void led_set_brightness_nosleep(struct led_classdev *led_cdev,
				enum led_brightness value);
ssize_t led_trigger_read(struct file *filp, struct kobject *kobj,
			struct bin_attribute *attr, char *buf,
			loff_t pos, size_t count);
ssize_t led_trigger_write(struct file *filp, struct kobject *kobj,
			struct bin_attribute *bin_attr, char *buf,
			loff_t pos, size_t count);

extern struct rw_semaphore leds_list_lock;
extern struct list_head leds_list;
extern struct list_head trigger_list;
extern const char * const led_colors[LED_COLOR_ID_MAX];

#endif	/* __LEDS_H_INCLUDED */

包含初始化核心,闪烁,亮度等一些功能。

当然在设备中还可看到看门狗

,USB

,I2C

等。

工具中可以看到一些常用监测tools/leds/uledmon.c:

代码语言:javascript
代码运行次数:0
运行
复制
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <unistd.h>

#include <linux/uleds.h>

int main(int argc, char const *argv[])
{
	struct uleds_user_dev uleds_dev;
	int fd, ret;
	int brightness;
	struct timespec ts;

	if (argc != 2) {
		fprintf(stderr, "Requires <device-name> argument\n");
		return 1;
	}

	strncpy(uleds_dev.name, argv[1], LED_MAX_NAME_SIZE);
	uleds_dev.max_brightness = 100;

	fd = open("/dev/uleds", O_RDWR);
	if (fd == -1) {
		perror("Failed to open /dev/uleds");
		return 1;
	}

	ret = write(fd, &uleds_dev, sizeof(uleds_dev));
	if (ret == -1) {
		perror("Failed to write to /dev/uleds");
		close(fd);
		return 1;
	}

	while (1) {
		ret = read(fd, &brightness, sizeof(brightness));
		if (ret == -1) {
			perror("Failed to read from /dev/uleds");
			close(fd);
			return 1;
		}
		clock_gettime(CLOCK_MONOTONIC, &ts);
		printf("[%ld.%09ld] %u\n", ts.tv_sec, ts.tv_nsec, brightness);
	}

	close(fd);

	return 0;
}

比单片机程序的确复杂了许多。

工具:ros2-foxy

学习源码,才能真正掌握ros2,在此处不过多说明了。

代码语言:javascript
代码运行次数:0
运行
复制
repositories:
  ament/ament_cmake:
    type: git
    url: https://github.com/ament/ament_cmake.git
    version: 0.9.8
  ament/ament_index:
    type: git
    url: https://github.com/ament/ament_index.git
    version: 1.0.1
  ament/ament_lint:
    type: git
    url: https://github.com/ament/ament_lint.git
    version: 0.9.6
  ament/ament_package:
    type: git
    url: https://github.com/ament/ament_package.git
    version: 0.9.3
  ament/google_benchmark_vendor:
    type: git
    url: https://github.com/ament/google_benchmark_vendor.git
    version: 0.0.3
  ament/googletest:
    type: git
    url: https://github.com/ament/googletest.git
    version: 1.8.9000
  ament/uncrustify_vendor:
    type: git
    url: https://github.com/ament/uncrustify_vendor.git
    version: 1.4.0
  eProsima/Fast-CDR:
    type: git
    url: https://github.com/eProsima/Fast-CDR.git
    version: v1.0.13
  eProsima/Fast-DDS:
    type: git
    url: https://github.com/eProsima/Fast-DDS.git
    version: v2.0.2
  eProsima/foonathan_memory_vendor:
    type: git
    url: https://github.com/eProsima/foonathan_memory_vendor.git
    version: v1.0.0
  eclipse-cyclonedds/cyclonedds:
    type: git
    url: https://github.com/eclipse-cyclonedds/cyclonedds.git
    version: 0.7.0
  osrf/osrf_pycommon:
    type: git
    url: https://github.com/osrf/osrf_pycommon.git
    version: 0.1.10
  osrf/osrf_testing_tools_cpp:
    type: git
    url: https://github.com/osrf/osrf_testing_tools_cpp.git
    version: 1.3.2
  ros-perception/laser_geometry:
    type: git
    url: https://github.com/ros-perception/laser_geometry.git
    version: 2.2.0
  ros-planning/navigation_msgs:
    type: git
    url: https://github.com/ros-planning/navigation_msgs.git
    version: 2.0.2
  ros-tooling/libstatistics_collector:
    type: git
    url: https://github.com/ros-tooling/libstatistics_collector.git
    version: 1.0.1
  ros-tracing/ros2_tracing:
    type: git
    url: https://gitlab.com/ros-tracing/ros2_tracing.git
    version: 1.0.4
  ros-visualization/interactive_markers:
    type: git
    url: https://github.com/ros-visualization/interactive_markers.git
    version: 2.1.3
  ros-visualization/python_qt_binding:
    type: git
    url: https://github.com/ros-visualization/python_qt_binding.git
    version: 1.0.5
  ros-visualization/qt_gui_core:
    type: git
    url: https://github.com/ros-visualization/qt_gui_core.git
    version: 1.1.2
  ros-visualization/rqt:
    type: git
    url: https://github.com/ros-visualization/rqt.git
    version: 1.0.6
  ros-visualization/rqt_action:
    type: git
    url: https://github.com/ros-visualization/rqt_action.git
    version: 1.0.1
  ros-visualization/rqt_console:
    type: git
    url: https://github.com/ros-visualization/rqt_console.git
    version: 1.1.1
  ros-visualization/rqt_graph:
    type: git
    url: https://github.com/ros-visualization/rqt_graph.git
    version: 1.1.0
  ros-visualization/rqt_msg:
    type: git
    url: https://github.com/ros-visualization/rqt_msg.git
    version: 1.0.2
  ros-visualization/rqt_plot:
    type: git
    url: https://github.com/ros-visualization/rqt_plot.git
    version: 1.0.8
  ros-visualization/rqt_publisher:
    type: git
    url: https://github.com/ros-visualization/rqt_publisher.git
    version: 1.1.0
  ros-visualization/rqt_py_console:
    type: git
    url: https://github.com/ros-visualization/rqt_py_console.git
    version: 1.0.0
  ros-visualization/rqt_reconfigure:
    type: git
    url: https://github.com/ros-visualization/rqt_reconfigure.git
    version: 1.0.6
  ros-visualization/rqt_service_caller:
    type: git
    url: https://github.com/ros-visualization/rqt_service_caller.git
    version: 1.0.3
  ros-visualization/rqt_shell:
    type: git
    url: https://github.com/ros-visualization/rqt_shell.git
    version: 1.0.0
  ros-visualization/rqt_srv:
    type: git
    url: https://github.com/ros-visualization/rqt_srv.git
    version: 1.0.1
  ros-visualization/rqt_top:
    type: git
    url: https://github.com/ros-visualization/rqt_top.git
    version: 1.0.0
  ros-visualization/rqt_topic:
    type: git
    url: https://github.com/ros-visualization/rqt_topic.git
    version: 1.1.0
  ros-visualization/tango_icons_vendor:
    type: git
    url: https://github.com/ros-visualization/tango_icons_vendor.git
    version: 0.0.1
  ros/class_loader:
    type: git
    url: https://github.com/ros/class_loader.git
    version: 2.0.1
  ros/kdl_parser:
    type: git
    url: https://github.com/ros/kdl_parser.git
    version: 2.4.1
  ros/pluginlib:
    type: git
    url: https://github.com/ros/pluginlib.git
    version: 2.5.3
  ros/resource_retriever:
    type: git
    url: https://github.com/ros/resource_retriever.git
    version: 2.3.4
  ros/robot_state_publisher:
    type: git
    url: https://github.com/ros/robot_state_publisher.git
    version: 2.4.1
  ros/ros_environment:
    type: git
    url: https://github.com/ros/ros_environment.git
    version: 2.5.0
  ros/ros_tutorials:
    type: git
    url: https://github.com/ros/ros_tutorials.git
    version: 1.2.5
  ros/urdfdom:
    type: git
    url: https://github.com/ros/urdfdom.git
    version: 2.3.3
  ros/urdfdom_headers:
    type: git
    url: https://github.com/ros/urdfdom_headers.git
    version: 1.0.5
  ros2/ament_cmake_ros:
    type: git
    url: https://github.com/ros2/ament_cmake_ros.git
    version: 0.9.0
  ros2/common_interfaces:
    type: git
    url: https://github.com/ros2/common_interfaces.git
    version: 2.0.3
  ros2/console_bridge_vendor:
    type: git
    url: https://github.com/ros2/console_bridge_vendor.git
    version: 1.2.3
  ros2/demos:
    type: git
    url: https://github.com/ros2/demos.git
    version: 0.9.3
  ros2/eigen3_cmake_module:
    type: git
    url: https://github.com/ros2/eigen3_cmake_module.git
    version: 0.1.1
  ros2/example_interfaces:
    type: git
    url: https://github.com/ros2/example_interfaces.git
    version: 0.9.0
  ros2/examples:
    type: git
    url: https://github.com/ros2/examples.git
    version: 0.9.4
  ros2/geometry2:
    type: git
    url: https://github.com/ros2/geometry2.git
    version: 0.13.9
  ros2/launch:
    type: git
    url: https://github.com/ros2/launch.git
    version: 0.10.4
  ros2/launch_ros:
    type: git
    url: https://github.com/ros2/launch_ros.git
    version: 0.11.1
  ros2/libyaml_vendor:
    type: git
    url: https://github.com/ros2/libyaml_vendor.git
    version: 1.0.2
  ros2/message_filters:
    type: git
    url: https://github.com/ros2/message_filters.git
    version: 3.2.4
  ros2/mimick_vendor:
    type: git
    url: https://github.com/ros2/mimick_vendor.git
    version: 0.2.3
  ros2/orocos_kinematics_dynamics:
    type: git
    url: https://github.com/ros2/orocos_kinematics_dynamics.git
    version: 3.3.1
  ros2/performance_test_fixture:
    type: git
    url: https://github.com/ros2/performance_test_fixture.git
    version: 0.0.6
  ros2/python_cmake_module:
    type: git
    url: https://github.com/ros2/python_cmake_module.git
    version: 0.8.0
  ros2/rcl:
    type: git
    url: https://github.com/ros2/rcl.git
    version: 1.1.10
  ros2/rcl_interfaces:
    type: git
    url: https://github.com/ros2/rcl_interfaces.git
    version: 1.0.0
  ros2/rcl_logging:
    type: git
    url: https://github.com/ros2/rcl_logging.git
    version: 1.0.1
  ros2/rclcpp:
    type: git
    url: https://github.com/ros2/rclcpp.git
    version: 2.3.0
  ros2/rclpy:
    type: git
    url: https://github.com/ros2/rclpy.git
    version: 1.0.4
  ros2/rcpputils:
    type: git
    url: https://github.com/ros2/rcpputils.git
    version: 1.3.1
  ros2/rcutils:
    type: git
    url: https://github.com/ros2/rcutils.git
    version: 1.1.2
  ros2/realtime_support:
    type: git
    url: https://github.com/ros2/realtime_support.git
    version: 0.9.0
  ros2/rmw:
    type: git
    url: https://github.com/ros2/rmw.git
    version: 1.0.2
  ros2/rmw_connext:
    type: git
    url: https://github.com/ros2/rmw_connext.git
    version: 1.0.3
  ros2/rmw_cyclonedds:
    type: git
    url: https://github.com/ros2/rmw_cyclonedds.git
    version: 0.7.6
  ros2/rmw_dds_common:
    type: git
    url: https://github.com/ros2/rmw_dds_common.git
    version: 1.0.2
  ros2/rmw_fastrtps:
    type: git
    url: https://github.com/ros2/rmw_fastrtps.git
    version: 1.2.4
  ros2/rmw_implementation:
    type: git
    url: https://github.com/ros2/rmw_implementation.git
    version: 1.0.1
  ros2/ros1_bridge:
    type: git
    url: https://github.com/ros2/ros1_bridge.git
    version: 0.9.6
  ros2/ros2cli:
    type: git
    url: https://github.com/ros2/ros2cli.git
    version: 0.9.8
  ros2/ros2cli_common_extensions:
    type: git
    url: https://github.com/ros2/ros2cli_common_extensions.git
    version: 0.1.0
  ros2/ros_testing:
    type: git
    url: https://github.com/ros2/ros_testing.git
    version: 0.2.1
  ros2/rosbag2:
    type: git
    url: https://github.com/ros2/rosbag2.git
    version: 0.3.5
  ros2/rosidl:
    type: git
    url: https://github.com/ros2/rosidl.git
    version: 1.2.0
  ros2/rosidl_dds:
    type: git
    url: https://github.com/ros2/rosidl_dds.git
    version: 0.7.1
  ros2/rosidl_defaults:
    type: git
    url: https://github.com/ros2/rosidl_defaults.git
    version: 1.0.0
  ros2/rosidl_python:
    type: git
    url: https://github.com/ros2/rosidl_python.git
    version: 0.9.4
  ros2/rosidl_runtime_py:
    type: git
    url: https://github.com/ros2/rosidl_runtime_py.git
    version: 0.9.0
  ros2/rosidl_typesupport:
    type: git
    url: https://github.com/ros2/rosidl_typesupport.git
    version: 1.0.1
  ros2/rosidl_typesupport_connext:
    type: git
    url: https://github.com/ros2/rosidl_typesupport_connext.git
    version: 1.0.2
  ros2/rosidl_typesupport_fastrtps:
    type: git
    url: https://github.com/ros2/rosidl_typesupport_fastrtps.git
    version: 1.0.2
  ros2/rpyutils:
    type: git
    url: https://github.com/ros2/rpyutils.git
    version: 0.2.0
  ros2/rviz:
    type: git
    url: https://github.com/ros2/rviz.git
    version: 8.2.1
  ros2/spdlog_vendor:
    type: git
    url: https://github.com/ros2/spdlog_vendor.git
    version: 1.1.2
  ros2/sros2:
    type: git
    url: https://github.com/ros2/sros2.git
    version: 0.9.4
  ros2/system_tests:
    type: git
    url: https://github.com/ros2/system_tests.git
    version: 0.9.1
  ros2/test_interface_files:
    type: git
    url: https://github.com/ros2/test_interface_files.git
    version: 0.8.0
  ros2/tinyxml2_vendor:
    type: git
    url: https://github.com/ros2/tinyxml2_vendor.git
    version: 0.7.3
  ros2/tinyxml_vendor:
    type: git
    url: https://github.com/ros2/tinyxml_vendor.git
    version: 0.8.0
  ros2/tlsf:
    type: git
    url: https://github.com/ros2/tlsf.git
    version: 0.5.0
  ros2/unique_identifier_msgs:
    type: git
    url: https://github.com/ros2/unique_identifier_msgs.git
    version: 2.1.2
  ros2/urdf:
    type: git
    url: https://github.com/ros2/urdf.git
    version: 2.4.0
  ros2/yaml_cpp_vendor:
    type: git
    url: https://github.com/ros2/yaml_cpp_vendor.git
    version: 7.0.2

系统内核还是C为主,工具以C++和Python等为主。

当然上述系统只涉及信息处理,如果需要和现实交互,需要再装备传感器和执行器{物联网机器人操作系统}。

  • 现实-传感器-{数字世界-处理-数字世界}-执行器-现实

如何以此为基础构建“自动驾驶系统”,持续学习中{Apex.Autonomy}

通过红绿灯路口

直行-右转


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/01/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档