smach(二)

http://wiki.ros.org/smach/Tutorials/User%20Data

两个状态之间通过数据交流的方式进行状态转移。

#!/usr/bin/env python

import rospy
import smach
import smach_ros

# define state Foo
class Foo(smach.State):
    def __init__(self):
        smach.State.__init__(self, 
                             outcomes=['outcome1','outcome2'],
                             input_keys=['foo_counter_in'],
                             output_keys=['foo_counter_out'])

    def execute(self, userdata):
        rospy.loginfo('Executing state FOO')
        if userdata.foo_counter_in < 3:
            userdata.foo_counter_out = userdata.foo_counter_in + 1
            return 'outcome1'
        else:
            return 'outcome2'


# define state Bar
class Bar(smach.State):
    def __init__(self):
        smach.State.__init__(self, 
                             outcomes=['outcome1'],
                             input_keys=['bar_counter_in'])
        
    def execute(self, userdata):
        rospy.loginfo('Executing state BAR')
        rospy.loginfo('Counter = %f'%userdata.bar_counter_in)        
        return 'outcome1'
        




def main():
    rospy.init_node('smach_example_state_machine')

    # Create a SMACH state machine
    sm = smach.StateMachine(outcomes=['outcome4'])
    sm.userdata.sm_counter = 0

    # Open the container
    with sm:
        # Add states to the container
        smach.StateMachine.add('FOO', Foo(), 
                               transitions={'outcome1':'BAR', 
                                            'outcome2':'outcome4'},
                               remapping={'foo_counter_in':'sm_counter', 
                                          'foo_counter_out':'sm_counter'})
        smach.StateMachine.add('BAR', Bar(), 
                               transitions={'outcome1':'FOO'},
                               remapping={'bar_counter_in':'sm_counter'})


    # Execute SMACH plan
    outcome = sm.execute()


if __name__ == '__main__':
    main()

 

user_data.png

 

为方便土地利用总体规划编制单位制作土地利用总体规划图件,针对市、县、乡三级土地利用总体规划制图,制作市、县、乡土地利用总体规划必选图件的图式符号库。该图式符号库适用于ArcGIS软件平台下的图件制作。 图式符号库由FHK.ttf文件和.style文件构成。其中,FHK.ttf文件包含耕地( )、园地( )、农田水利设施( )三种地类符号。.style符号库文件为每一张必备图件的要素图式符号。各地根据实际情况,可适当调整符号大小。 市级图式符号库包括:土地利用现状图.style、土地利用总体规划图.style、基本农田保护规划图.style、建设用地管制规划图.style、土地整治规划图.style、重点建设项目用地布局图.style、中心城区土地利用现状图.style、中心城区土地利用规划图(分区).style、中心城区土地利用规划图(用途).style以及基础地理要素.style。 县级图式符号库包括:土地利用现状图.style、土地利用总体规划图.style、基本农田保护规划图.style、建设用地管制规划图.style、土地整治规划图.style、重点建设项目用地布局图.style、中心城区土地利用现状图.style、中心城区土地利用规划图(分区).style、中心城区土地利用规划图(用途).style以及基础地理要素.style。 乡级图式符号库包括:土地利用现状图.style、土地利用总体规划图(分区).style、土地利用总体规划图(用途).style、建设用地管制与基本农田保护图.style、土地整治规划图.style以及基础地理要素.style。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值